Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ÝPfymã@sæddlmZmZmZddlZddlZddlZddlZddlm Z m Z ddl m Z m Z mZGdd„deƒZGdd „d e ejeƒƒZGd d „d eƒZGd d „d eƒZdd„ZGdd„deƒZejdƒZdd„Zdd„ZGdd„deƒZdS)é)Úabsolute_importÚdivisionÚprint_functionNé)Ú string_typesÚwith_metaclass)ÚVersionÚ LegacyVersionÚparsec@seZdZdZdS)ÚInvalidSpecifierzH An invalid specifier was found, users should refer to PEP 440. N)Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrú /usr/lib/python3.6/specifiers.pyr sr c@s€eZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZej d d „ƒZ e j d d „ƒZ ejdd d„ƒZ ejddd„ƒZ d S)Ú BaseSpecifiercCsdS)zŽ Returns the str representation of this Specifier like object. This should be representative of the Specifier itself. Nr)ÚselfrrrÚ__str__szBaseSpecifier.__str__cCsdS)zF Returns a hash value for this Specifier like object. Nr)rrrrÚ__hash__szBaseSpecifier.__hash__cCsdS)zq Returns a boolean representing whether or not the two Specifier like objects are equal. Nr)rÚotherrrrÚ__eq__$szBaseSpecifier.__eq__cCsdS)zu Returns a boolean representing whether or not the two Specifier like objects are not equal. Nr)rrrrrÚ__ne__+szBaseSpecifier.__ne__cCsdS)zg Returns whether or not pre-releases as a whole are allowed by this specifier. Nr)rrrrÚ prereleases2szBaseSpecifier.prereleasescCsdS)zd Sets whether or not pre-releases as a whole are allowed by this specifier. Nr)rÚvaluerrrr9sNcCsdS)zR Determines if the given item is contained within this specifier. Nr)rÚitemrrrrÚcontains@szBaseSpecifier.containscCsdS)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ÚiterablerrrrÚfilterFszBaseSpecifier.filter)N)N)r r rÚabcÚabstractmethodrrrrÚabstractpropertyrÚsetterrrrrrrrs rc@s eZdZiZd dd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z e dd„ƒZ e dd„ƒZe dd„ƒZejdd„ƒZdd„Zd!dd„Zd"dd„ZdS)#Ú_IndividualSpecifierÚNcCsF|jj|ƒ}|stdj|ƒƒ‚|jdƒjƒ|jdƒjƒf|_||_dS)NzInvalid specifier: '{0}'ÚoperatorÚversion)Ú_regexÚsearchr ÚformatÚgroupÚstripÚ_specÚ _prereleases)rÚspecrÚmatchrrrÚ__init__Rs   z_IndividualSpecifier.__init__cCs0|jdk rdj|jƒnd}dj|jjt|ƒ|ƒS)Nz, prereleases={0!r}r$z<{0}({1!r}{2})>)r-r)rÚ __class__r Ústr)rÚprerrrÚ__repr___s z_IndividualSpecifier.__repr__cCs dj|jŽS)Nz{0}{1})r)r,)rrrrrlsz_IndividualSpecifier.__str__cCs t|jƒS)N)Úhashr,)rrrrrosz_IndividualSpecifier.__hash__c CsLt|tƒr0y|j|ƒ}Wq@tk r,tSXnt||jƒs@tS|j|jkS)N)Ú isinstancerr1r ÚNotImplementedr,)rrrrrrrs  z_IndividualSpecifier.__eq__c CsLt|tƒr0y|j|ƒ}Wq@tk r,tSXnt||jƒs@tS|j|jkS)N)r6rr1r r7r,)rrrrrr}s  z_IndividualSpecifier.__ne__cCst|dj|j|ƒƒS)Nz _compare_{0})Úgetattrr)Ú _operators)rÚoprrrÚ _get_operatorˆsz"_IndividualSpecifier._get_operatorcCst|ttfƒst|ƒ}|S)N)r6r rr )rr&rrrÚ_coerce_version‹sz$_IndividualSpecifier._coerce_versioncCs |jdS)Nr)r,)rrrrr%�sz_IndividualSpecifier.operatorcCs |jdS)Nr)r,)rrrrr&”sz_IndividualSpecifier.versioncCs|jS)N)r-)rrrrr˜sz _IndividualSpecifier.prereleasescCs ||_dS)N)r-)rrrrrrœscCs |j|ƒS)N)r)rrrrrÚ __contains__ sz!_IndividualSpecifier.__contains__cCs<|dkr|j}|j|ƒ}|jr(| r(dS|j|jƒ||jƒS)NF)rr<Ú is_prereleaser;r%r&)rrrrrrr£s   z_IndividualSpecifier.containsccsŒd}g}d|dk r|ndi}xL|D]D}|j|ƒ}|j|f|Žr"|jr\|pL|j r\|j|ƒq"d}|Vq"W| rˆ|rˆx|D] }|VqzWdS)NFrT)r<rr>rÚappend)rrrZyieldedÚfound_prereleasesÚkwr&Úparsed_versionrrrr¶s       z_IndividualSpecifier.filter)r$N)N)N)r r rr9r0r4rrrrr;r<Úpropertyr%r&rr"r=rrrrrrr#Ns         r#c@sveZdZdZejdedejejBƒZdddddd d œZ d d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)Ú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. ) z^\s*z\s*$ÚequalÚ not_equalÚless_than_equalÚgreater_than_equalÚ less_thanÚ greater_than)z==z!=z<=z>=ú<ú>cCst|tƒstt|ƒƒ}|S)N)r6r r2)rr&rrrr<òs  zLegacySpecifier._coerce_versioncCs||j|ƒkS)N)r<)rÚ prospectiver.rrrÚ_compare_equal÷szLegacySpecifier._compare_equalcCs||j|ƒkS)N)r<)rrMr.rrrÚ_compare_not_equalúsz"LegacySpecifier._compare_not_equalcCs||j|ƒkS)N)r<)rrMr.rrrÚ_compare_less_than_equalýsz(LegacySpecifier._compare_less_than_equalcCs||j|ƒkS)N)r<)rrMr.rrrÚ_compare_greater_than_equalsz+LegacySpecifier._compare_greater_than_equalcCs||j|ƒkS)N)r<)rrMr.rrrÚ_compare_less_thansz"LegacySpecifier._compare_less_thancCs||j|ƒkS)N)r<)rrMr.rrrÚ_compare_greater_thansz%LegacySpecifier._compare_greater_thanN)r r rÚ _regex_strÚreÚcompileÚVERBOSEÚ IGNORECASEr'r9r<rNrOrPrQrRrSrrrrrDÖs  rDcstjˆƒ‡fdd„ƒ}|S)Ncst|tƒsdSˆ|||ƒS)NF)r6r)rrMr.)ÚfnrrÚwrapped s z)_require_version_compare..wrapped)Ú functoolsÚwraps)rYrZr)rYrÚ_require_version_compare sr]c @s¸eZdZdZejdedejejBƒZdddddd d d d œZ e d d„ƒZ e dd„ƒZ e dd„ƒZ e dd„ƒZe dd„ƒZe dd„ƒZe dd„ƒZdd„Zedd„ƒZejdd„ƒZd S)!Ú Specifiera (?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. (?=rKrLz===cCsNdjttjdd„t|ƒƒƒdd…ƒ}|d7}|jdƒ||ƒoL|jdƒ||ƒS) NÚ.cSs|jdƒ o|jdƒ S)NZpostZdev)Ú startswith)ÚxrrrÚ�s z/Specifier._compare_compatible..rz.*z>=z==éÿÿÿÿ)ÚjoinÚlistÚ itertoolsÚ takewhileÚ_version_splitr;)rrMr.ÚprefixrrrÚ_compare_compatible‚s   zSpecifier._compare_compatiblecCsp|jdƒrPt|jƒ}t|dd…ƒ}tt|ƒƒ}|dt|ƒ…}t||ƒ\}}nt|ƒ}|jsht|jƒ}||kS)Nz.*ééþÿÿÿ)ÚendswithrZpublicrhr2ÚlenÚ _pad_versionÚlocal)rrMr.rrrrN�s    zSpecifier._compare_equalcCs|j||ƒ S)N)rN)rrMr.rrrrOÀszSpecifier._compare_not_equalcCs |t|ƒkS)N)r)rrMr.rrrrPÄsz"Specifier._compare_less_than_equalcCs |t|ƒkS)N)r)rrMr.rrrrQÈsz%Specifier._compare_greater_than_equalcCs>t|ƒ}||ksdS|j r:|jr:t|jƒt|jƒkr:dSdS)NFT)rr>Ú base_version)rrMr.rrrrRÌszSpecifier._compare_less_thancCs`t|ƒ}||ksdS|j r:|jr:t|jƒt|jƒkr:dS|jdk r\t|jƒt|jƒkr\dSdS)NFT)rZis_postreleaserqrp)rrMr.rrrrSås zSpecifier._compare_greater_thancCst|ƒjƒt|ƒjƒkS)N)r2Úlower)rrMr.rrrÚ_compare_arbitraryszSpecifier._compare_arbitrarycCsR|jdk r|jS|j\}}|d krN|dkr@|jdƒr@|dd …}t|ƒjrNdSd S) Nú==ú>=ú<=ú~=ú===z.*rkTF)rtrurvrwrxrl)r-r,rmr r>)rr%r&rrrrs    zSpecifier.prereleasescCs ||_dS)N)r-)rrrrrrsN)r r rrTrUrVrWrXr'r9r]rjrNrOrPrQrRrSrsrCrr"rrrrr^s*^  #      r^z^([0-9]+)((?:a|b|c|rc)[0-9]+)$cCsDg}x:|jdƒD],}tj|ƒ}|r2|j|jƒƒq|j|ƒqW|S)Nr_)ÚsplitÚ _prefix_regexr(ÚextendÚgroupsr?)r&Úresultrr/rrrrh's rhc Csægg}}|jttjdd„|ƒƒƒ|jttjdd„|ƒƒƒ|j|t|dƒd…ƒ|j|t|dƒd…ƒ|jddgtdt|dƒt|dƒƒƒ|jddgtdt|dƒt|dƒƒƒttj|Žƒttj|ŽƒfS)NcSs|jƒS)N)Úisdigit)rarrrrb6sz_pad_version..cSs|jƒS)N)r~)rarrrrb7srrÚ0)r?rerfrgrnÚinsertÚmaxÚchain)ÚleftÚrightZ left_splitZ right_splitrrrro2s && roc@sŒeZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Zdd„Z dd„Z dd„Z e dd„ƒZ e jdd„ƒZ dd„Zddd„Zd dd„ZdS)!Ú SpecifierSetr$Nc Csrdd„|jdƒDƒ}tƒ}xB|D]:}y|jt|ƒƒWq tk rX|jt|ƒƒYq Xq Wt|ƒ|_||_dS)NcSsg|]}|jƒr|jƒ‘qSr)r+)Ú.0Úsrrrú Rsz)SpecifierSet.__init__..ú,) ryÚsetÚaddr^r rDÚ frozensetÚ_specsr-)rZ specifiersrZparsedÚ specifierrrrr0Os  zSpecifierSet.__init__cCs*|jdk rdj|jƒnd}djt|ƒ|ƒS)Nz, prereleases={0!r}r$z)r-r)rr2)rr3rrrr4dszSpecifierSet.__repr__cCsdjtdd„|jDƒƒƒS)Nr‰css|]}t|ƒVqdS)N)r2)r†r‡rrrú nsz'SpecifierSet.__str__..)rdÚsortedr�)rrrrrmszSpecifierSet.__str__cCs t|jƒS)N)r5r�)rrrrrpszSpecifierSet.__hash__cCs˜t|tƒrt|ƒ}nt|tƒs"tStƒ}t|j|jBƒ|_|jdkrX|jdk rX|j|_n<|jdk rv|jdkrv|j|_n|j|jkrŒ|j|_ntdƒ‚|S)NzFCannot combine SpecifierSets with True and False prerelease overrides.)r6rr…r7rŒr�r-Ú ValueError)rrrŽrrrÚ__and__ss       zSpecifierSet.__and__cCsFt|tƒrt|ƒ}n&t|tƒr,tt|ƒƒ}nt|tƒs:tS|j|jkS)N)r6rr…r#r2r7r�)rrrrrrŠs    zSpecifierSet.__eq__cCsFt|tƒrt|ƒ}n&t|tƒr,tt|ƒƒ}nt|tƒs:tS|j|jkS)N)r6rr…r#r2r7r�)rrrrrr”s    zSpecifierSet.__ne__cCs t|jƒS)N)rnr�)rrrrÚ__len__žszSpecifierSet.__len__cCs t|jƒS)N)Úiterr�)rrrrÚ__iter__¡szSpecifierSet.__iter__cCs.|jdk r|jS|jsdStdd„|jDƒƒS)Ncss|] }|jVqdS)N)r)r†r‡rrrr�³sz+SpecifierSet.prereleases..)r-r�Úany)rrrrr¤s  zSpecifierSet.prereleasescCs ||_dS)N)r-)rrrrrrµscCs |j|ƒS)N)r)rrrrrr=¹szSpecifierSet.__contains__csNtˆttfƒstˆƒ‰ˆdkr$|j‰ˆ r4ˆjr4dSt‡‡fdd„|jDƒƒS)NFc3s|]}|jˆˆd�VqdS))rN)r)r†r‡)rrrrr�Õsz(SpecifierSet.contains..)r6r rr rr>Úallr�)rrrr)rrrr¼s  zSpecifierSet.containscCs¼|dkr|j}|jr:x |jD]}|j|t|ƒd�}qW|Sg}g}xZ|D]R}t|ttfƒsdt|ƒ}n|}t|tƒrtqH|jr�| r�|sš|j |ƒqH|j |ƒqHW| r´|r´|dkr´|S|SdS)N)r) rr�rÚboolr6r rr r>r?)rrrr.Zfilteredr@rrBrrrrÙs*      zSpecifierSet.filter)r$N)N)N)r r rr0r4rrr’rrr“r•rCrr"r=rrrrrrr…Ms      r…)Z __future__rrrrr[rfrUZ_compatrrr&rr r r‘r ÚABCMetaÚobjectrr#rDr]r^rVrzrhror…rrrrÚs&9 4