\h dZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z gdZ e dZdZej dZGdd eZ dd eeefd e ed ed e ede ef dZ dd eeefd e ed ed e edef dZdee dddfdZdedeeeffdZGddZGddZGddZe eeefZGddZy)z PEP 610 N)AnyDictIterableOptionalTypeTypeVarUnion) DirectUrlDirectUrlValidationErrorDirInfo ArchiveInfoVcsInfoTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c eZdZy)r N)__name__ __module__ __qualname__b/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pip/_internal/models/direct_url.pyr r srr d expected_typekeydefaultreturnc\||vr|S||}t||st|d|d|d|S)z3Get value from dictionary and verify expected type.z has unexpected type for z (expected )) isinstancer rrrrvalues r_getr!sN !| cFE e] +&i0[q Q   LrcBt||||}|t|d|S)Nz must have a value)r!r rs r _get_requiredr#'s1 M3 0E }&#.@'ABB LrinfosInfoTypec|Dcgc]}|| }}|s tdt|dkDr td|dJ|dScc}w)Nz/missing one of archive_info, dir_info, vcs_infoz1more than one of archive_info, dir_info, vcs_infor)r len)r$infos r_exactly_one_ofr*0sj# 8dt'7T 8E 8 & =   5zA~& ?   8   8O 9s AAkwargsc \|jDcic] \}}| || c}}Scc}}w)z Make dict excluding None values.)items)r+kvs r _filter_noner0>s(#\\^ =TQq}AqD == =s ((c xeZdZdZ d dededeeddfdZedeeee fdedfd Z deee ffd Z y) rvcs_infoNvcs commit_idrequested_revisionrc.||_||_||_yNr3r5r4)selfr3r4r5s r__init__zVcsInfo.__init__Fs "4"rrc x|y|t|tdt|tdt|tdS)Nr3r4r5)r3r4r5)r#strr!clsrs r _from_dictzVcsInfo._from_dictPs< 9ae,#AsK8#As,@A  rcZt|j|j|jS)Nr8)r0r3r5r4r9s r_to_dictzVcsInfo._to_dictZs&#66nn  rr7) rrrnamer<rr: classmethodrrr?rBrrrrrCs D -1 # ##%SM #  # 8DcN3 8K   $sCx. rrceZdZdZ d deedeeeefddfdZedeefdZ e jdeeddfd Z e d eeee fdedfd Z deee ffd Zy)r archive_infoNhashhashesrc ||_||_yr7)rHrG)r9rGrHs rr:zArchiveInfo.__init__es   rc|jSr7)_hashrAs rrGzArchiveInfo.hashns zzrr c*|o |jdd\}}|j||i|_||_y||jvr.|jj |_||j|<||_y#t$rtd|wxYw)N=r'z"invalid archive_info.hash format: )split ValueErrorr rHcopyrK)r9r hash_name hash_values rrGzArchiveInfo.hashrs   (- C(;% : {{"(*5  $++-"kk..0 )3 I&  .8 B s A::BrcX|y|t|tdt|tdS)NrGrHrGrH)r!r<dictr=s rr?zArchiveInfo._from_dicts) 9QV,T!T85LMMrcDt|j|jS)NrT)r0rGrHrAs rrBzArchiveInfo._to_dicts4;;??r)NN)rrrrCrr<rr:propertyrGsetterrDrr?rBrrrr r bs D#+/smc3h(  hsm [[(3-D"N8DcN3N8ONN @$sCx.@rr cjeZdZdZ d deddfdZedeee e fdedfdZ dee e ffdZ y) r dir_infoeditablerNc||_yr7r[)r9r[s rr:zDirInfo.__init__s ! rrc<|y|t|tddS)Nr[F)rr])r#boolr=s rr?zDirInfo._from_dicts 9M!T:uMNNrc6t|jxsdS)Nr])r0r[rAs rrBzDirInfo._to_dictsT]]%:d;;r)F) rrrrCr_r:rDrrr<rr?rBrrrr r so D!! ! O8DcN3O8KOO <$sCx.tt|tdt|tdt t j t|tdtj t|tdtj t|tdgS)NrbrcrFrZr2)rbrcr)) r r#r<r!r*r r?rUr rr=s rr{zDirectUrl.from_dictsyae,an5 **44+HI&&tAtZ'@A&&tAtZ'@A  rct|j|j}|jj ||jj <|S)N)rbrc)r0ryrcr)rBrC)r9ress rr|zDirectUrl.to_dictsD!!** #ii002DIINN rscJ|jtj|Sr7)r{jsonloads)r>rs r from_jsonzDirectUrl.from_jsons}}TZZ]++rcLtj|jdS)NT) sort_keys)rdumpsr|rAs rto_jsonzDirectUrl.to_jsonszz$,,.D99rcft|jtxr|jjSr7)rr)r r[rAs ris_local_editablezDirectUrl.is_local_editables"$))W-D$))2D2DDrr7)rN)rrrr<r%rr:rmrWryr}rDrrr{r|rrr_rrrrr r s '+ ) ))sm )  ) #s #s # c  '  $sCx.  [    c3h,#,+,,::E4Err r7)__doc__rre urllib.parserotypingrrrrrrr __all__rDIRECT_URL_METADATA_NAMEcompileri Exceptionr r<r!r#r*r0rr r r%r rrrrsU FFF  CL, RZZI J  y QU  CH~ &*1g 47 BJ1+  a[ QU CH~&*1g47BJ1+ 8HZ$89 j >3>4S>>   >)@)@X<<& gw. /GEGEr