U o a% @sddlmZmZmZddlZddlZddlZddlZddlm Z m Z m Z m Z ddlm Z mZmZmZddlmZddlmZddlmZdd lmZmZerdd lmZmZmZmZmZm Z m!Z!ee"e"ge#fZ$d d d ddgZ%Gdd d e&Z'Gdd d e&Z(Gdd d e&Z)Gddde*Z+Gddde+Z,Gddde+Z-Gddde+Z.ededBedBedBedBed Bed!Bed"Bed#Bed$Bed%Bed&Bed'Bed(Bed)Bed*Bed+Bed,BZ/d%d$d d!ddd-Z0e/1d.d/ed0ed1Bed2Bed3Bed4Bed5Bed6Bed7BZ2e2ed8Bed9BZ3e31d:d/ed;ed<BZ4e41d=d/ed>ed?BZ5e/e4BZ6ee6e3e6Z7e71d@d/edA8Z9edB8Z:eZ;e7ee9e;e:BZe e;e Z=dCdDZ>dWdFdGZ?dHd/dId/ej@ejAejBejCejDejEdJZFdKdLZGGdMdNdNe*ZHeHZIdOdPZJdQdRZKdSdTZLdUdZMGdVdde*ZNdS)X)absolute_importdivisionprint_functionN)ParseException ParseResults stringStart stringEnd) ZeroOrMoreGroupForward QuotedString)Literal) string_types)MYPY_CHECK_RUNNING) SpecifierInvalidSpecifier)AnyCallableDictListOptionalTupleUnion InvalidMarkerUndefinedComparisonUndefinedEnvironmentNameMarkerdefault_environmentc@seZdZdZdS)rzE An invalid marker was found, users should refer to PEP 508. N__name__ __module__ __qualname____doc__r$r$^C:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\packaging\markers.pyr"sc@seZdZdZdS)rzP An invalid operation was attempted on a value that doesn't support it. Nrr$r$r$r%r(sc@seZdZdZdS)rz\ A name was attempted to be used that does not exist inside of the environment. Nrr$r$r$r%r.sc@s,eZdZddZddZddZddZd S) NodecCs ||_dSN)value)selfr(r$r$r%__init__6sz Node.__init__cCs t|jSr')strr(r)r$r$r%__str__:sz Node.__str__cCsd|jjt|S)Nz <{0}({1!r})>)format __class__r r+r,r$r$r%__repr__>sz Node.__repr__cCstdSr')NotImplementedErrorr,r$r$r% serializeBszNode.serializeN)r r!r"r*r-r0r2r$r$r$r%r&5sr&c@seZdZddZdS)VariablecCst|Sr'r+r,r$r$r%r2HszVariable.serializeNr r!r"r2r$r$r$r%r3Gsr3c@seZdZddZdS)ValuecCs d|S)Nz"{0}")r.r,r$r$r%r2NszValue.serializeNr5r$r$r$r%r6Msr6c@seZdZddZdS)OpcCst|Sr'r4r,r$r$r%r2Tsz Op.serializeNr5r$r$r$r%r7Ssr7implementation_versionplatform_python_implementationimplementation_namepython_full_versionplatform_releaseplatform_versionplatform_machineplatform_systempython_version sys_platformos_nameos.name sys.platformplatform.versionplatform.machineplatform.python_implementationpython_implementationextra)rCrDrErFrGrHcCstt|d|dSNr)r3ALIASESgetsltr$r$r%urQz=====>=<=!=z~=><not inincCs t|dSrJ)r7rMr$r$r%rQ|rR'"cCs t|dSrJ)r6rMr$r$r%rQrRandorcCs t|dSrJ)tuplerMr$r$r%rQrR()cCs t|trdd|DS|SdS)NcSsg|] }t|qSr$)_coerce_parse_result).0ir$r$r% sz(_coerce_parse_result..) isinstancer)resultsr$r$r%rbs rbTcCst|tttfstt|trHt|dkrHt|dttfrHt|dSt|trdd|D}|rnd|Sdd|dSn"t|trddd |DS|SdS) Nrrcss|]}t|ddVqdS)F)firstN)_format_markerrcmr$r$r% sz!_format_marker.. r`racSsg|] }|qSr$)r2rjr$r$r%resz"_format_marker..)rflistr_rAssertionErrorlenrijoin)markerrhinnerr$r$r%ris      ricCs||kSr'r$lhsrhsr$r$r%rQrRcCs||kSr'r$rtr$r$r%rQrR)rZrYrXrUrSrVrTrWcCslztd||g}Wntk r.Yn X||St|}|dkrbtd||||||S)Nz#Undefined {0!r} on {1!r} and {2!r}.) rrqr2rcontains _operatorsrLrr.)ruoprvspecoperr$r$r%_eval_ops  r}c@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.)rL _undefinedrfr~rr.) environmentnamer(r$r$r%_get_envs   rc Csgg}|D]}t|tttfs"tt|trB|dt||q t|tr|\}}}t|trtt||j }|j }n|j }t||j }|dt |||q |dkst|dkr |gq t dd|DS)N)r]r^r^css|]}t|VqdSr')all)rcitemr$r$r%rlsz$_evaluate_markers..) rfrnr_rroappend_evaluate_markersr3rr(r}any) markersrgroupsrrrurzrv lhs_value 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_versions  rcCsrttdr ttjj}tjj}nd}d}||tjtt t tt t d tddtjd S)Nimplementation0rw.) r:r8rBr>r<r?r=r;r9r@rA)hasattrsysrrrrosplatformmachinereleasesystemr@rHrqpython_version_tuple)iverr:r$r$r%r s"   c@s.eZdZddZddZddZd dd ZdS) rc Cs`ztt||_WnFtk rZ}z(d|||j|jd}t|W5d}~XYnXdS)Nz+Invalid marker: {0!r}, parse error at {1!r})rbMARKER parseString_markersrr.locr)r)rreerr_strr$r$r%r*(szMarker.__init__cCs t|jSr')rirr,r$r$r%r-2szMarker.__str__cCsdt|S)Nz)r.r+r,r$r$r%r06szMarker.__repr__NcCs$t}|dk r||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)rcurrent_environmentr$r$r%evaluate:s  zMarker.evaluate)N)r r!r"r*r-r0rr$r$r$r%r's )T)O __future__rrroperatorrrrpip._vendor.pyparsingrrrrr r r r r L_compatr_typingr specifiersrrtypingrrrrrrrr+boolZOperator__all__ ValueErrorrrrobjectr&r3r6r7VARIABLErKsetParseAction VERSION_CMP MARKER_OP MARKER_VALUEBOOLOP MARKER_VAR MARKER_ITEMsuppressLPARENRPAREN MARKER_EXPR MARKER_ATOMrrbriltleeqnegegtryr}r~rrrrrrr$r$r$r%s   $      >