cu nddlZddlZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z m Z mZmZmZddlmZddlmZmZmZeeefZeeeefZedeZeeegefZGdd eZGd d ej Z Gd de Z!Gdde!Z"dedeegefdedeegeffdZ#Gdde!Z$ej%dZ&dede efdZ'dedefdZ(de ede edee ee effdZ)Gdde Z*dS) N) CallableDictIterableIteratorListOptionalPatternSetTupleTypeVarUnion)canonicalize_version) LegacyVersionVersionparseVersionTypeVar)boundceZdZdZdS)InvalidSpecifierzH An invalid specifier was found, users should refer to PEP 440. N)__name__ __module__ __qualname____doc__L/usr/lib/python3/dist-packages/pkg_resources/_vendor/packaging/specifiers.pyrr!srrc reZdZejdefdZejdefdZejde de fdZ ej de e fdZejde ddfd Zejdd ed e e de fd Zej dd eed e e deefdZdS) BaseSpecifierreturncdS)z Returns the str representation of this Specifier like object. This should be representative of the Specifier itself. Nrselfs r__str__zBaseSpecifier.__str__(rcdS)zF Returns a hash value for this Specifier like object. Nrr"s r__hash__zBaseSpecifier.__hash__/r%rothercdS)zq Returns a boolean representing whether or not the two Specifier like objects are equal. Nrr#r(s r__eq__zBaseSpecifier.__eq__5r%rcdS)zg Returns whether or not pre-releases as a whole are allowed by this specifier. Nrr"s r prereleaseszBaseSpecifier.prereleases<r%rvalueNcdS)zd Sets whether or not pre-releases as a whole are allowed by this specifier. Nrr#r.s rr-zBaseSpecifier.prereleasesCr%ritemr-cdS)zR Determines if the given item is contained within this specifier. Nrr#r1r-s rcontainszBaseSpecifier.containsJr%riterablecdS)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 defd Z defd Z e deeeffd Zdefd Zd ede fdZdedefdZdedefdZe defdZe defdZe dee fdZejde ddfdZdede fdZ ddedee de fdZ ddee dee dee fdZ!dS)_IndividualSpecifier _operators_regexNspecr-r c|j|}|std|d|d|df|_||_dS)NzInvalid specifier: ''operatorversion)rEsearchrgroupstrip_spec _prereleases)r#rGr-matchs r__init__z_IndividualSpecifier.__init___s ""4(( C"#A$#A#A#ABB B KK # # ) ) + + KK " " ( ( * *'  (rcl|j d|jnd}d|jjdt ||dS)N, prereleases=rF<()>)rPr- __class__rr;r#pres r__repr__z_IndividualSpecifier.__repr__lsT , 2T- 1 1 1 B4>*AASYYA#AAAArc dj|jS)Nz{}{})formatrOr"s rr$z_IndividualSpecifier.__str__usv}dj))rcP|jdt|jdfS)Nrr)rOrr"s r_canonical_specz$_IndividualSpecifier._canonical_specxs"z!}24:a=AAAArc*t|jSr8)hashr_r"s rr'z_IndividualSpecifier.__hash__|sD()))rr(ct|tr; |t|}n3#t$r tcYSwxYwt||jstS|j|jkSr8) isinstancer;rXrNotImplementedr_r*s rr+z_IndividualSpecifier.__eq__s eS ! ! " &s5zz22# & & &%%%% &E4>22 "! !#u'<<rRr[r$propertyr r_r<r'r=r+CallableOperatorrjUnparsedVersion ParsedVersionrmrJrKr-r@ryr4rrr7rrrrCrCZs!#JS#X### CL ( (S (HTN (d ( ( ( (B#BBBB*****BsCxBBBXB*#**** =F =t = = = =!!(8!!!! = #XX!Xd^!!!X!""$""""######DH@@#@2:4.@ @@@@0QU!! 0!?G~! . !!!!!!!rrCc eZdZdZejdezdzejejzZdddddd d Z dd e de 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>rFNrGr-r ct||tjdtdS)NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)superrRwarningswarnDeprecationWarning)r#rGr-rXs rrRzLegacySpecifier.__init__sC {+++  0      rrKcht|tstt|}|Sr8)rcrr;rls rrmzLegacySpecifier._coerce_versions,'=11 2#CLL11Gr prospectivec4|||kSr8rmr#rrGs r_compare_equalzLegacySpecifier._compare_equal d2248888rc4|||kSr8rrs r_compare_not_equalz"LegacySpecifier._compare_not_equal rrc4|||kSr8rrs r_compare_less_than_equalz(LegacySpecifier._compare_less_than_equalrrc4|||kSr8rrs r_compare_greater_than_equalz+LegacySpecifier._compare_greater_than_equalsd2248888rc4|||kSr8rrs r_compare_less_thanz"LegacySpecifier._compare_less_thanT11$7777rc4|||kSr8rrs r_compare_greater_thanz%LegacySpecifier._compare_greater_thanrrr)rrr _regex_strrecompileVERBOSE IGNORECASErErDr;rr>rRrrrmrrrrrr __classcell__)rXs@rrrs  JRZ*,w6 R]8R S SF"   J  S HTN d      = 9-9s9t99999m939499999M99QU99999(9039 9999 8m8384888888c8d88888888rrfn Specifierr c vtjdddtdtdtffd }|S)Nr#rrrGr cLt|tsdS|||Sr|)rcr)r#rrGrs rwrappedz)_require_version_compare..wrapped"s.+w// 5r$ T***r) functoolswrapsrr;r>)rrs` r_require_version_comparers[_R+k+ +S+T++++++ Nrc eZdZdZejdezdzejejzZdddddd 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 fdZejde ddfdZdS)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+sm[ JzRZ*,w6 R]8R S SF"    J } C D    *%/-%/s%/t%/%/%/%/N:m:3:4::::=g=S=T====TX0""$""""""rz^([0-9]+)((?:a|b|c|rc)[0-9]+)$rKcg}|dD][}t|}|r(||F||\|S)Nr)split _prefix_regexrLextendgroupsr)rKresultr1rQs rrrIstF c""  $$T**  MM%,,.. ) ) ) ) MM$     Mrsegmentc<tfddD S)Nc3BK|]}|VdSr8) startswith).0rrs r z!_is_not_suffix..UsB'-6""r)devabrcpost)any)rs`rrrTs@1P rleftrightc Rgg}}|ttjd||ttjd|||t |dd||t |dd|ddgt dt |dt |dz z|ddgt dt |dt |dz zttj|ttj|fS)Nc*|Sr8isdigitxs rz_pad_version..^src*|Sr8rrs rrz_pad_version.._s!))++rrr0)rrrrrinsertmaxchain)rr left_split right_splits rrrZsr " Jd9./D/DdKKLLMMMtI/0E0EuMMNNOOOd3z!}--//0111uSQ00223444a#QKN(;(;c*Q->P>P(P!Q!QQRRRq3%#aZ]););c+a.>Q>Q)Q"R"RRSSS *- . .Y_k5R0S0S TTrcleZdZ ddedeeddfdZdefdZdefdZde fd Z d e defddfd Z d e defd Zde fd ZdeefdZedeefdZejdeddfdZdedefdZ ddedeedefdZ ddeedeedeefdZdS) SpecifierSetrFN specifiersr-r cJd|dD}t}|D]W} |t|&#t$r%|t |YTwxYwt ||_||_dS)Nc^g|]*}||+Sr)rNrss r z)SpecifierSet.__init__..ss-RRR! RAGGIIRRRr,) rsetaddrrr frozenset_specsrP)r#rr-split_specifiersparsed specifiers rrRzSpecifierSet.__init__ms SRz/?/?/D/DRRR-0EE) 7 7I 7 9Y//0000# 7 7 7 ?95566666 7 '' (s"A,BBcR|j d|jnd}dt||dS)NrTrFz.s(;;!s1vv;;;;;;r)rsortedrr"s rr$zSpecifierSet.__str__s-xx;;t{;;;;;<<.s$66Q1=666666r)rPrrr"s rr-zSpecifierSet.prereleasessH   ($ $ { 466$+666666rr.c||_dSr8rsr0s rr-zSpecifierSet.prereleasesrurr1c,||Sr8rwrxs rryzSpecifierSet.__contains__rzrctttfst|js jrdSt fd|jDS)NFc3FK|]}|VdS)r0Nrw)rrr1r-s rrz(SpecifierSet.contains..s3RR1::d :<<RRRRRRr)rcrrrr-r}allrr3s ``rr4zSpecifierSet.containss{ $ 899 ;;D  *K t1 5 RRRRRdkRRRRRRrr5c||j}|jr0|jD]&}||t|}'|Sg}g}|D]|}t |t t fst|}n|}t |t rF|jr|s|s| |g| |}|s|r||S|S)Nr0) r-rr7r>rcrrrr}r)r#r5r-rGfilteredrr1rs rr7zSpecifierSet.filters  *K ;&   P P;;xT+=N=N;OOO .0H68  ! * *!$(@AA*%*4[[NN%)Nnm<<"/* *#7)00666OOD)))) ) 1 )k6I((Orrr8)rrrr;rr>rRr[r$r<r'r r'r=r+r*rrCr-rr-r@rryr4rrr7rrrrrls0BF(((19$( ((((05#5555=====!#!!!!U>3#67N.+F+t++++     !(#78!!!!7Xd^777X7"""$""""##T####DHSS#S2:4.S SSSS<QU33 03?G~3 . !333333rr)+r9rrrrtypingrrrrrrr r r r r utilsrrKrrrrr;rrr>rr&rABCMetarrCrrrrrrrrrrrrr;sQ                             ('''''2222222222g},- 34)AAA]C0$67z 0 0 0 0 0 ck0 0 0 0 fFFFFF=FFFR9898989898*989898x +}c2D89  {M3/56    X"X"X"X"X"$X"X"X"v <== CDICD UtCyUcUuT#YS =Q7RUUUU$vvvvv=vvvvvr