a  zev@s<dZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z gdZ e dZdZedZGdd d eZdeeefe eee ee ed d d Zdeeefe eee eed d dZee dddddZeeeefdddZGdddZGdddZGdddZe eeefZGdddZdS) z PEP 610 N)AnyDictIterableOptionalTypeTypeVarUnion) DirectUrlDirectUrlValidationErrorDirInfo ArchiveInfoVcsInfoTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c@s eZdZdS)r N)__name__ __module__ __qualname__rra/opt/bitninja-python-dojo/embedded/lib/python3.9/site-packages/pip/_internal/models/direct_url.pyr sr )d expected_typekeydefaultreturncCs4||vr |S||}t||s0td||||S)z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {})) isinstancer formatrrrrvaluerrr_gets rcCs(t||||}|dur$t|d|S)Nz must have a value)rr rrrr _get_required)srInfoType)infosrcCsFdd|D}|stdt|dkr.td|ddus>J|dS)NcSsg|]}|dur|qSNr).0inforrr 3z#_exactly_one_of..z/missing one of archive_info, dir_info, vcs_infoz1more than one of archive_info, dir_info, vcs_infor)r len)r rrr_exactly_one_of2s r()kwargsrcKsdd|DS)z Make dict excluding None values.cSsi|]\}}|dur||qSr!r)r"kvrrr Br%z _filter_none..)items)r)rrr _filter_none@sr.c@speZdZdZd eeeeeeeeddddZeeeee feddddZ eee fd d d Z dS) r vcs_infoN)vcs commit_idrequested_revisionresolved_revisionresolved_revision_typercCs"||_||_||_||_||_dSr!r0r2r1r3r4)selfr0r1r2r3r4rrr__init__Hs zVcsInfo.__init__rrc CsF|dur dS|t|tdt|tdt|tdt|tdt|tddS)Nr0r1r2r3r4)r0r1r2r3r4)rstrrclsrrrr _from_dictVs     zVcsInfo._from_dictrcCst|j|j|j|j|jdS)Nr5)r.r0r2r1r3r4r6rrr_to_dictbszVcsInfo._to_dict)NNN) rrrnamer9rr7 classmethodrrr<r?rrrrr Es " r c@s`eZdZdZd eeddddZeeeee feddddZ eee fd d d Z dS) r archive_infoN)hashrcCs ||_dSr!rC)r6rCrrrr7oszArchiveInfo.__init__r8cCs|dur dS|t|tddS)NrCrD)rr9r:rrrr<uszArchiveInfo._from_dictr=cCs t|jdS)NrD)r.rCr>rrrr?{szArchiveInfo._to_dict)N) rrrr@rr9r7rArrr<r?rrrrr ls "r c@s\eZdZdZd eddddZeeee e fedddd Z ee e fd d d Z dS)r dir_infoFN)editablercCs ||_dSr!rF)r6rFrrrr7szDirInfo.__init__r8cCs"|dur dS|t|tddddS)NrFF)rrG)rboolr:rrrr<s zDirInfo._from_dictr=cCst|jp ddS)NrG)r.rFr>rrrr?szDirInfo._to_dict)F) rrrr@rHr7rArrr9rr<r?rrrrr s "r c@seZdZdeeeeddddZeedddZeedd d Z ddd d Z e e ee fdd ddZe ee fdddZe eddddZedddZdS)r N)urlr# subdirectoryrcCs||_||_||_dSr!)rIr#rJ)r6rIr#rJrrrr7szDirectUrl.__init__)netlocrcCsRd|vr |S|dd\}}t|jtr@|jjdkr@|dkr@|St|rN|S|S)N@r&git)splitrr#r r0 ENV_VAR_REmatch)r6rK user_passnetloc_no_user_passrrr_remove_auth_from_netlocs   z"DirectUrl._remove_auth_from_netlocr=cCs<tj|j}||j}tj|j||j|j |j f}|S)zurl 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. ) urllibparseurlsplitrIrSrK urlunsplitschemepathqueryfragment)r6purlrKsurlrrr redacted_urls  zDirectUrl.redacted_urlcCs||dSr!) from_dictto_dictr>rrrvalidateszDirectUrl.validater8c CsRtt|tdt|tdttt|tdtt|tdt t|tdgdS)NrIrJrBrEr/)rIrJr#) r rr9rr(r r<dictr r r:rrrr_s  zDirectUrl.from_dictcCs&t|j|jd}|j||jj<|S)N)rIrJ)r.r^rJr#r?r@)r6resrrrr`s zDirectUrl.to_dict)srcCs|t|Sr!)r_jsonloads)r;rdrrr from_jsonszDirectUrl.from_jsoncCstj|ddS)NT) sort_keys)redumpsr`r>rrrto_jsonszDirectUrl.to_json)N)rrrr9rrr7rSpropertyr^rarArrr_r`rgrjrrrrr s"   r )N)N)__doc__rere urllib.parserTtypingrrrrrrr__all__rDIRECT_URL_METADATA_NAMEcompilerO Exceptionr r9rrr(r.r r r rr rrrrs4$   '