\hu ddlZddlZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z m Z mZmZmZddlmZddlmZmZmZeeefZeeeefZedeZeeegefZGdd eZGd d ej> Z Gd de Z!Gdde!Z"dedeegefdedeegeffdZ#Gdde!Z$ejJdZ&dede efdZ'dedefdZ(de ede edee ee effdZ)Gdde Z*y) N) CallableDictIterableIteratorListOptionalPatternSetTupleTypeVarUnion)canonicalize_version) LegacyVersionVersionparseVersionTypeVar)boundceZdZdZy)InvalidSpecifierzH An invalid specifier was found, users should refer to PEP 440. N)__name__ __module__ __qualname____doc__c/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.pyrr!srrc neZdZejdefdZejdefdZejde de fdZ ejde e fdZejde ddfd Zejdd ed e e de fd Zej dd eed e e deefdZy) BaseSpecifierreturncy)z Returns the str representation of this Specifier like object. This should be representative of the Specifier itself. Nrselfs r__str__zBaseSpecifier.__str__(rcy)zF Returns a hash value for this Specifier like object. Nrr"s r__hash__zBaseSpecifier.__hash__/r%rothercy)zq Returns a boolean representing whether or not the two Specifier like objects are equal. Nrr#r(s r__eq__zBaseSpecifier.__eq__5r%rcy)zg Returns whether or not pre-releases as a whole are allowed by this specifier. Nrr"s r prereleaseszBaseSpecifier.prereleases<r%rvalueNcy)zd Sets whether or not pre-releases as a whole are allowed by this specifier. Nrr#r.s rr-zBaseSpecifier.prereleasesCr%ritemr-cy)zR Determines if the given item is contained within this specifier. Nrr#r1r-s rcontainszBaseSpecifier.containsJr%riterablecy)z Takes an iterable of items and filters them so that only items which are contained within this specifier are allowed in it. Nr)r#r5r-s rfilterzBaseSpecifier.filterPr%rN)rrrabcabstractmethodstrr$intr'objectboolr+abstractpropertyrr-setterr4rrr7rrrrr's-     #    F t    Xd^    $    S x~    PT  0 ?G~ . !  rr) metaclassceZdZUiZeeefed<eeed<ddedee ddfdZ defdZ defd Z e deeeffd Zdefd Zd ede fd ZdedefdZdedefdZe defdZe defdZe dee fdZej8de ddfdZdede fdZ ddedee de fdZ ddee dee dee fdZ!y)_IndividualSpecifier _operators_regexNspecr-r c|jj|}|std|d|jdj |jdj f|_||_y)NzInvalid specifier: ''operatorversion)rEsearchrgroupstrip_spec _prereleases)r#rFr-matchs r__init__z_IndividualSpecifier.__init___sm ""4("%9$q#AB B KK # ) ) + KK " ( ( *'  (rc|jd|jnd}d|jjdt ||dS)N, prereleases=<()>)rOr- __class__rr;r#pres r__repr__z_IndividualSpecifier.__repr__lsU  ,T--0 1 4>>**+1SYM#bAArc4dj|jS)Nz{}{})formatrNr"s rr$z_IndividualSpecifier.__str__usv}}djj))rcP|jdt|jdfS)Nrr)rNrr"s r_canonical_specz$_IndividualSpecifier._canonical_specxs#zz!}24::a=AAArc,t|jSr8)hashr_r"s rr'z_IndividualSpecifier.__hash__|sD(())rr(ct|tr |jt|}nt||jstS|j |j k(S#t$r tcYSwxYwr8) isinstancer;rXrNotImplementedr_r*s rr+z_IndividualSpecifier.__eq__sg eS ! &s5z2E4>>2! !##u'<'<<< $ &%% &sA""A43A4opc>t|d|j|}|S)N _compare_)getattrrD)r#reoperator_callables r _get_operatorz"_IndividualSpecifier._get_operators+.5 Idoob123/ ! rrJcHt|ttfs t|}|Sr8)rcrrrr#rJs r_coerce_versionz$_IndividualSpecifier._coerce_versions'M7#;<GnGrc |jdS)NrrNr"s rrIz_IndividualSpecifier.operatorzz!}rc |jdS)Nrror"s rrJz_IndividualSpecifier.versionrprc|jSr8rOr"s rr-z _IndividualSpecifier.prereleasess   rr.c||_yr8rsr0s rr-z _IndividualSpecifier.prereleases !rr1c$|j|Sr8r4r#r1s r __contains__z!_IndividualSpecifier.__contains__}}T""rc| |j}|j|}|jr|sy|j|j}|||j SNF)r-rm is_prereleaserjrIrJ)r#r1r-normalized_itemris rr4z_IndividualSpecifier.containss_  **K..t4  ( (/3.@.@.O $,,??rr5c#Kd}g}d||ndi}|D]Y}|j|}|j|fi|s(|jr |s|js|j |Td}|[|s|r |D]}|yyyw)NFr-T)rmr4r}r-append)r#r5r-yieldedfound_prereleaseskwrJparsed_versions rr7z_IndividualSpecifier.filtersK,C[ N  "G!11':Nt}}^2r2"//4#3#3%,,W5#G!M "(,,   -ws 6A?AA?rTNr8)"rrrrDrr;__annotations__r rr>rQr[r$propertyr r_r<r'r=r+CallableOperatorrjUnparsedVersion ParsedVersionrmrIrJr-r@ryr4rrr7rrrrCrCZs!#JS#X# CL (S (HTN (d (B#B**BsCxBB*#* =F =t =!!(8! = #!Xd^!!""$""###DH@#@2:4.@ @0QU! 0!?G~! . !!rrCc2eZdZdZej dezdzej ejzZdddddd d Z dd e d e e dd ffd Z dedefdZded e de fdZded e de fdZded e de fdZded e de fdZded e de fdZded e de fdZxZS)LegacySpecifiera (?P(==|!=|<=|>=|<|>)) \s* (?P [^,;\s)]* # Since this is a "legacy" specifier, and the version # string can be just about anything, we match everything # except for whitespace, a semi-colon for marker support, # a closing paren since versions can be enclosed in # them, and a comma since it's a version separator. ) ^\s*\s*$equal not_equalless_than_equalgreater_than_equal less_than greater_than)==!=<=>=rU>NrFr-r cZt|||tjdty)NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)superrQwarningswarnDeprecationWarning)r#rFr-rXs rrQzLegacySpecifier.__init__s& {+  0  rrJcNt|tstt|}|Sr8)rcrr;rls rrmzLegacySpecifier._coerce_versions'=1#CL1Gr prospectivec*||j|k(Sr8rmr#rrFs r_compare_equalzLegacySpecifier._compare_equal d224888rc*||j|k7Sr8rrs r_compare_not_equalz"LegacySpecifier._compare_not_equal rrc*||j|kSr8rrs r_compare_less_than_equalz(LegacySpecifier._compare_less_than_equalrrc*||j|k\Sr8rrs r_compare_greater_than_equalz+LegacySpecifier._compare_greater_than_equalsd224888rc*||j|kSr8rrs r_compare_less_thanz"LegacySpecifier._compare_less_thanT11$777rc*||j|kDSr8rrs r_compare_greater_thanz%LegacySpecifier._compare_greater_thanrrr)rrr _regex_strrecompileVERBOSE IGNORECASErErDr;rr>rQrrrmrrrrrr __classcell__)rXs@rrrs!  JRZZ*,w6 R]]8R SF"   J S HTN d = 9-9s9t99m939499M99QU99(9039 9 8m8384888c8d8rrfn Specifierr c ltjdddtdtdtffd }|S)Nr#rrrFr c:t|tsy|||Sr|)rcr)r#rrFrs rwrappedz)_require_version_compare..wrapped"s+w/$ T**r) functoolswrapsrr;r>)rrs` r_require_version_comparersC__R+k+ +S+T++ Nrc eZdZdZej dezdzej ejzZdddddd d d d Z e d e de de fdZe d e de de fdZe d e de de fdZe d e de de fdZe d e de de fdZe d e de de fdZe d e de de fdZd ede de fdZede fdZej2de ddfdZy)ra (?P(~=|==|!=|<=|>=|<|>|===)) (?P (?: # The identity operators allow for an escape hatch that will # do an exact string match of the version you wish to install. # This will not be parsed by PEP 440 and we cannot determine # any semantic meaning from it. This operator is discouraged # but included entirely as an escape hatch. (?<====) # Only match for the identity operator \s* [^\s]* # We just match everything, except for whitespace # since we are only testing for strict identity. ) | (?: # The (non)equality operators allow for wild card and local # versions to be specified so we have to define these two # operators separately to enable that. (?<===|!=) # Only match for equals and not equals \s* v? (?:[0-9]+!)? # epoch [0-9]+(?:\.[0-9]+)* # release (?: # pre release [-_\.]? (a|b|c|rc|alpha|beta|pre|preview) [-_\.]? [0-9]* )? (?: # post release (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) )? # You cannot use a wild card and a dev or local version # together so group them with a | and make them optional. (?: (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local | \.\* # Wild card syntax of .* )? ) | (?: # The compatible operator requires at least two digits in the # release segment. (?<=~=) # Only match for the compatible operator \s* v? (?:[0-9]+!)? # epoch [0-9]+(?:\.[0-9]+)+ # release (We have a + instead of a *) (?: # pre release [-_\.]? (a|b|c|rc|alpha|beta|pre|preview) [-_\.]? [0-9]* )? (?: # post release (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) )? (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release ) | (?: # All other operators only allow a sub set of what the # (non)equality operators do. Specifically they do not allow # local versions to be specified nor do they allow the prefix # matching wild cards. (?rrrrrrrrrrr-r@rrrrr+s[ JzRZZ*,w6 R]]8R SF"   J } C D  *%/-%/s%/t%/%/N:m:3:4::=g=S=T=T0""$""rz^([0-9]+)((?:a|b|c|rc)[0-9]+)$rJcg}|jdD]J}tj|}|r |j|j :|j |L|S)Nr)split _prefix_regexrKextendgroupsr)rJresultr1rPs rrrIsWF c" $$T*  MM%,,. ) MM$   Mrsegmentc.tfddD S)Nc3@K|]}j|ywr8) startswith).0rrs r z!_is_not_suffix..Us!'-6"s)devabrcpost)any)rs`rrrTs"1P rleftrightc gg}}|jttjd||jttjd||j|t |dd|j|t |dd|j ddgt dt |dt |dz z|j ddgt dt |dt |dz zttj|ttj|fS)Nc"|jSr8isdigitxs rz_pad_version..^s rc"|jSr8rrs rrz_pad_version.._s !))+rrr0)rrrrrinsertmaxchain)rr left_split right_splits rrrZs" " Jd9../DdKLMtI//0EuMNOd3z!}-/01uSQ0234a#QKN(;c*Q->P(P!QQRq3%#aZ]);c+a.>Q)Q"RRS *- .Y__k5R0S TTrc8eZdZ ddedeeddfdZdefdZdefdZde fdZ d e defddfd Z d e defd Zde fd Zdeefd ZedeefdZej*deddfdZdedefdZ ddedeedefdZ ddeedeedeefdZy) SpecifierSetN specifiersr-r c`|jdDcgc]#}|js|j%}}t}|D]} |jt |t||_||_ ycc}w#t $r|jt |YbwxYw)N,) rrMsetaddrrr frozenset_specsrO)r#rr-ssplit_specifiersparsed specifiers rrQzSpecifierSet.__init__ms 0:/?/?/DR! AGGIRR-0E) 7I 7 9Y/0 7 ' (!S$ 7 ?956 7sBBB#B-,B-c^|jd|jnd}dt||dS)NrSrTz.s;!s1v;s)rsortedrr"s rr$zSpecifierSet.__str__s xx;t{{;;<.s6Q1==6s)rOrrr"s rr-zSpecifierSet.prereleasess?    ($$ $ {{6$++666rr.c||_yr8rsr0s rr-zSpecifierSet.prereleasesrurr1c$|j|Sr8rwrxs rryzSpecifierSet.__contains__rzrctttfs t |js j ryt fd|jDS)NFc3DK|]}|jyw)r.Nrw)rrr1r-s rrz(SpecifierSet.contains..sR1::d :<Rs )rcrrrr-r}allrr3s ``rr4zSpecifierSet.containssW $ 89;D  **Kt11 RdkkRRRrr5c| |j}|jr/|jD]}|j|t|} |Sg}g}|D]k}t |t t fs t|}n|}t |t r8|jr|s|rI|j|[|j|m|s|r||S|S)Nr.) r-rr7r>rcrrrr}r)r#r5r-rFfilteredrr1rs rr7zSpecifierSet.filters  **K ;;  P;;xT+=N;O PO .0H68  ! *!$(@A%*4[N%)Nnm<"// #)006OOD)# ** 1k6I((Orrr8)rrrr;rr>rQr[r$r<r'r r%r=r+r(rrCr+rr-r@rryr4rrr7rrrrrlsPBF((19$( (05#5==!#!U>3#67N.+F+t+  !(#78!7Xd^77"""$""##T#DHS#S2:4.S S<QU3 03?G~3 . !3rr)+r9rrrrtypingrrrrrrr r r r r utilsrrJrrrrr;rrr>rr$rABCMetarrCrrrrrrrrrrrrr9s{       (22g},- 34)A]C0$67z 0 ckk0 fF=FR98*98x +}c2D89  {M3/56 X"$X"v <= CDICD UtCyUcUuT#YS =Q7RU$v=vr