‹“Reôã@sdZddlZddlZddlmZddlmZddlm Z e r”ddl m Z m Z m Z mZmZmZmZedƒZdZejd ƒZd d d d dgZGdd „d eƒZddd„Zddd„Zdd„Zdd„ZGdd„deƒZGdd „d eƒZGdd „d eƒZ e reeee efZ!Gdd „d eƒZ"dS)z PEP 610 éN)Úsix)Úparse)ÚMYPY_CHECK_RUNNING)ÚAnyÚDictÚIterableÚOptionalÚTypeÚTypeVarÚUnionÚTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$Ú DirectUrlÚDirectUrlValidationErrorÚDirInfoÚ ArchiveInfoÚVcsInfoc@seZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrúŽ/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/models/direct_url.pyrs cCsf||kr|S||}tjr8|tkr8tj}t||ƒsbtdj|||ƒƒ‚|S)z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {}))rÚPY2ÚstrÚ string_typesÚ isinstancerÚformat)ÚdÚ expected_typeÚkeyÚdefaultÚvaluerrrÚ_get"s   r!cCs:t||||ƒ}|dkr6tdj|ƒƒ‚|S)Nz{} must have a value)r!rr)rrrrr rrrÚ _get_required3s r"cCsadd„|Dƒ}|s%tdƒ‚t|ƒdkrCtdƒ‚|ddk sYt‚|dS)NcSs"g|]}|dk r|‘qS)Nr)Ú.0Úinforrrú =s z#_exactly_one_of..z/missing one of archive_info, dir_info, vcs_infoéz1more than one of archive_info, dir_info, vcs_infor)rÚlenÚAssertionError)ÚinfosrrrÚ_exactly_one_of;s  r*cKsdd„|jƒDƒS)z Make dict excluding None values.cSs+i|]!\}}|dk r||“qS)Nr)r#ÚkÚvrrrú Ms z _filter_none..)Úitems)ÚkwargsrrrÚ _filter_noneJsr0c@sIeZdZdZddddd„Zedd„ƒZdd„ZdS) rÚvcs_infoNcCs1||_||_||_||_||_dS)N)ÚvcsÚrequested_revisionÚ commit_idÚresolved_revisionÚresolved_revision_type)Úselfr2r4r3r5r6rrrÚ__init__Ss     zVcsInfo.__init__cCsq|dkrdS|dt|tdƒdt|tdƒdt|tdƒdt|tdƒdt|tdƒƒS)Nr2r4r3r5r6)r"rr!)ÚclsrrrrÚ _from_dictas zVcsInfo._from_dictc Cs4td|jd|jd|jd|jd|jƒS)Nr2r3r4r5r6)r0r2r3r4r5r6)r7rrrÚ_to_dictns     zVcsInfo._to_dict)rrrÚnamer8Ú classmethodr:r;rrrrrPs  c@sCeZdZdZddd„Zedd„ƒZdd„ZdS) rÚ archive_infoNcCs ||_dS)N)Úhash)r7r?rrrr8|szArchiveInfo.__init__cCs)|dkrdS|dt|tdƒƒS)Nr?)r!r)r9rrrrr:‚s zArchiveInfo._from_dictcCstd|jƒS)Nr?)r0r?)r7rrrr;‰szArchiveInfo._to_dict)rrrr<r8r=r:r;rrrrrys c@sCeZdZdZddd„Zedd„ƒZdd„Zd S) rÚdir_infoFcCs ||_dS)N)Úeditable)r7rArrrr8‘szDirInfo.__init__cCs/|dkrdS|dt|tdddƒƒS)NrArF)r"Úbool)r9rrrrr:—s zDirInfo._from_dictcCstd|jpdƒS)NrA)r0rA)r7rrrr; szDirInfo._to_dictN)rrrr<r8r=r:r;rrrrrŽs  c@s…eZdZddd„Zdd„Zedd„ƒZdd „Zed d „ƒZ d d „Z edd„ƒZ dd„Z dS)r NcCs||_||_||_dS)N)Úurlr$Ú subdirectory)r7rCr$rDrrrr8«s  zDirectUrl.__init__cCssd|kr|S|jddƒ\}}t|jtƒr\|jjdkr\|dkr\|Stj|ƒro|S|S)Nú@r&Úgit)Úsplitrr$rr2Ú ENV_VAR_REÚmatch)r7ÚnetlocÚ user_passÚnetloc_no_user_passrrrÚ_remove_auth_from_netlocµs  z"DirectUrl._remove_auth_from_netloccCsRtj|jƒ}|j|jƒ}tj|j||j|j|j fƒ}|S)z¯url with user:password part removed unless it is formed with environment variables as specified in PEP 610, or it is ``git`` in the case of a git URL. ) Ú urllib_parseÚurlsplitrCrMrJÚ urlunsplitÚschemeÚpathÚqueryÚfragment)r7ÚpurlrJÚsurlrrrÚ redacted_urlÄs $zDirectUrl.redacted_urlcCs|j|jƒƒdS)N)Ú from_dictÚto_dict)r7rrrÚvalidateÒszDirectUrl.validatecCstdt|tdƒdt|tdƒdttjt|tdƒƒtjt|tdƒƒt jt|tdƒƒgƒƒS)NrCrDr$r>r@r1) r r"rr!r*rr:Údictrr)r9rrrrrXÖszDirectUrl.from_dictcCs8td|jd|jƒ}|jjƒ||jj<|S)NrCrD)r0rWrDr$r;r<)r7ÚresrrrrYås   zDirectUrl.to_dictcCs|jtj|ƒƒS)N)rXÚjsonÚloads)r9ÚsrrrÚ from_jsonîszDirectUrl.from_jsoncCstj|jƒddƒS)NÚ sort_keysT)r]ÚdumpsrY)r7rrrÚto_jsonószDirectUrl.to_json) rrrr8rMÚpropertyrWrZr=rXrYr`rcrrrrr ©s    )#Ú__doc__r]ÚreÚ pip._vendorrZpip._vendor.six.moves.urllibrrNÚpip._internal.utils.typingrÚtypingrrrrr r r r ÚDIRECT_URL_METADATA_NAMEÚcompilerHÚ__all__Ú Exceptionrr!r"r*r0ÚobjectrrrZInfoTyper rrrrÚs4  4    )