a ?&Nb$ @s~ddlmZmZmZddlZddlZddlZddlZddlm Z m Z m Z m Z mZmZmZmZmZddlmZddlmZddlmZmZerddlmZmZmZmZmZm Z m!Z!ee"e"ge#fZ$gd Z%Gd d d e&Z'Gd d d e&Z(Gddde&Z)Gddde*Z+Gddde+Z,Gddde+Z-Gddde+Z.e de dBe dBe dBe dBe dBe dBe dBe d Be d!Be d"Be d#Be d$Be d%Be d&Be d'Be d(Be d)BZ/d"d!ddddd*Z0e/1d+d,e d-e d.Be d/Be d0Be d1Be d2Be d3Be d4BZ2e2e d5Be d6BZ3e31d7d,ed8ed9BZ4e41d:d,e d;e d<BZ5e/e4BZ6e e6e3e6Z7e71d=d,e d>8Z9e d?8Z:e Z;e7e e9e;e:BZee;eZ=d@dAZ>dVdCdDZ?dEd,dFd,ej@ejAejBejCejDejEdGZFdHdIZGGdJdKdKe*ZHeHZIdLdMZJdNdOZKdPdQZLdRdSZMGdTdUdUe*ZNdS)W)absolute_importdivisionprint_functionN) ForwardGroupLiteralParseException ParseResults QuotedString ZeroOrMore stringEnd stringStart) string_types) TYPE_CHECKING)InvalidSpecifier Specifier)AnyCallableDictListOptionalTupleUnion) InvalidMarkerUndefinedComparisonUndefinedEnvironmentNameMarkerdefault_environmentc@seZdZdZdS)rzE An invalid marker was found, users should refer to PEP 508. N__name__ __module__ __qualname____doc__r$r$5/usr/lib/python3.9/site-packages/packaging/markers.pyr*src@seZdZdZdS)rzP An invalid operation was attempted on a value that doesn't support it. Nrr$r$r$r%r0src@seZdZdZdS)rz\ A name was attempted to be used that does not exist inside of the environment. Nrr$r$r$r%r6src@s,eZdZddZddZddZddZd S) NodecCs ||_dSN)value)selfr(r$r$r%__init__>sz Node.__init__cCs t|jSr')strr(r)r$r$r%__str__Bsz Node.__str__cCsd|jjt|S)Nz <{0}({1!r})>)format __class__r r+r,r$r$r%__repr__Fsz Node.__repr__cCstdSr')NotImplementedErrorr,r$r$r% serializeJszNode.serializeN)r r!r"r*r-r0r2r$r$r$r%r&=sr&c@seZdZddZdS)VariablecCst|Sr'r+r,r$r$r%r2PszVariable.serializeNr r!r"r2r$r$r$r%r3Osr3c@seZdZddZdS)ValuecCs d|S)Nz"{0}")r.r,r$r$r%r2VszValue.serializeNr5r$r$r$r%r6Usr6c@seZdZddZdS)OpcCst|Sr'r4r,r$r$r%r2\sz Op.serializeNr5r$r$r$r%r7[sr7implementation_versionplatform_python_implementationimplementation_namepython_full_versionplatform_releaseplatform_versionplatform_machineplatform_systempython_version sys_platformos_nameos.name sys.platformplatform.versionplatform.machineplatform.python_implementationpython_implementationZextra)rCrDrErFrGrHcCstt|d|dSNr)r3ALIASESgetsltr$r$r%}rPz=====>=<=!=z~=><not inincCs t|dSrI)r7rLr$r$r%rPrQ'"cCs t|dSrI)r6rLr$r$r%rPrQandorcCs t|dSrI)tuplerLr$r$r%rPrQ()cCs t|trdd|DS|SdS)NcSsg|] }t|qSr$)_coerce_parse_result).0ir$r$r% rQz(_coerce_parse_result..) isinstancer )resultsr$r$r%ras raTcCst|tttfsJt|trHt|dkrHt|dttfrHt|dSt|trdd|D}|rnd|Sdd|dSn"t|trddd |DS|SdS) Nrrcss|]}t|ddVqdS)F)firstN)_format_markerrbmr$r$r% rQz!_format_marker.. r_r`cSsg|] }|qSr$)r2rir$r$r%rdrQz"_format_marker..)relistr^rlenrhjoin)markerrginnerr$r$r%rhs      rhcCs||vSr'r$lhsrhsr$r$r%rPrQcCs||vSr'r$rrr$r$r%rPrQ)rYrXrWrTrRrUrSrVcCsjztd||g}Wnty,Yn 0||St|}|dur`td||||||S)Nz#Undefined {0!r} on {1!r} and {2!r}.) rror2rcontains _operatorsrKrr.)rsoprtspecZoperr$r$r%_eval_ops   rzc@s eZdZdS) UndefinedN)r r!r"r$r$r$r%r{sr{cCs(||t}t|tr$td||S)Nz/{0!r} does not exist in evaluation environment.)rK _undefinedrer{rr.) environmentnamer(r$r$r%_get_envs   rc Csgg}|D]}t|tttfs"Jt|trB|dt||q t|tr|\}}}t|trtt||j}|j}n|j}t||j}|dt |||q |dvsJ|dkr |gq t dd|DS)N)r\r]r]css|]}t|VqdSr')all)rbitemr$r$r%rkrQz$_evaluate_markers..) rermr^rappend_evaluate_markersr3rr(rzany) Zmarkersr}groupsrprsrxrtZ lhs_valueZ rhs_valuer$r$r%rs"        rcCs2d|}|j}|dkr.||dt|j7}|S)Nz{0.major}.{0.minor}.{0.micro}finalr)r. releaselevelr+serial)infoversionkindr$r$r%format_full_version s  rcCsrttdr ttjj}tjj}nd}d}||tjtt t tt t d tddtjd S)Nimplementation0ru.) r:r8rBr>r<r?r=r;r9r@rA)hasattrsysrrrr~osplatformmachinereleasesystemr@rHroZpython_version_tuple)Ziverr:r$r$r%rs"   rc@s.eZdZddZddZddZd dd ZdS) rc Csbztt||_WnHty\}z0d|||j|jd}t|WYd}~n d}~00dS)Nz+Invalid marker: {0!r}, parse error at {1!r})raMARKERZ parseString_markersrr.locr)r)rpeZerr_strr$r$r%r*0szMarker.__init__cCs t|jSr')rhrr,r$r$r%r-:szMarker.__str__cCsdt|S)Nz)r.r+r,r$r$r%r0>szMarker.__repr__NcCs$t}|dur||t|j|S)a$Evaluate a marker. Return the boolean from evaluating the given marker against the environment. environment is an optional argument to override all or part of the determined environment. The environment is determined from the current Python process. N)rupdaterr)r)r}Zcurrent_environmentr$r$r%evaluateBs  zMarker.evaluate)N)r r!r"r*r-r0rr$r$r$r%r/s r)T)OZ __future__rrroperatorrrrZ pyparsingrrrLrr r r r r Z_compatrZ_typingrZ specifiersrrtypingrrrrrrrr+boolZOperator__all__ ValueErrorrrrobjectr&r3r6r7ZVARIABLErJZsetParseActionZ VERSION_CMPZ MARKER_OPZ MARKER_VALUEZBOOLOPZ MARKER_VARZ MARKER_ITEMsuppressZLPARENZRPARENZ MARKER_EXPRZ MARKER_ATOMrrarhltleeqnegegtrwrzr{r|rrrrrr$r$r$r%s,  $      >