Re%@sddlmZmZmZddlZddlZddlZddlZddlm Z m Z m Z m Z ddlm Z mZmZmZddlmZddlmZddlmZdd lmZmZer&dd 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$d(d d)d!d*dd+diZ0e/j1d-d.ed/ed0Bed1Bed2Bed3Bed4Bed5Bed6BZ2e2ed7Bed8BZ3e3j1d9d.ed:ed;BZ4e4j1d<d.ed=ed>BZ5e/e4BZ6ee6e3e6Z7e7j1d?d.ed@j8Z9edAj8Z:eZ;e7ee9e;e:BZ<e;e<e e5e;>e e;e Z=dBdCZ>dDdEdFZ?d8dGd.d7dHd.d6ej@d2ejAd0ejBd3ejCd1ejDd5ejEiZFdIdJZGGdKdLdLe*ZHeHZIdMdNZJdOdPZKdQdRZLdSdZMGdTdde*ZNdS)U)absolute_importdivisionprint_functionN)ParseException ParseResults stringStart stringEnd) ZeroOrMoreGroupForward QuotedString)Literal) string_types) TYPE_CHECKING) SpecifierInvalidSpecifier)AnyCallableDictListOptionalTupleUnion InvalidMarkerUndefinedComparisonUndefinedEnvironmentNameMarkerdefault_environmentc@seZdZdZdS)rzE An invalid marker was found, users should refer to PEP 508. N)__name__ __module__ __qualname____doc__r#r#/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/packaging/markers.pyr"s c@seZdZdZdS)rzP An invalid operation was attempted on a value that doesn't support it. N)rr r!r"r#r#r#r$r(s c@seZdZdZdS)rz\ A name was attempted to be used that does not exist inside of the environment. N)rr r!r"r#r#r#r$r.s c@s@eZdZddZddZddZddZd S) NodecCs ||_dS)N)value)selfr&r#r#r$__init__6sz Node.__init__cCs t|jS)N)strr&)r'r#r#r$__str__:sz Node.__str__cCsdj|jjt|S)Nz <{0}({1!r})>)format __class__rr))r'r#r#r$__repr__>sz Node.__repr__cCs tdS)N)NotImplementedError)r'r#r#r$ serializeBszNode.serializeN)rr r!r(r*r-r/r#r#r#r$r%5s    r%c@seZdZddZdS)VariablecCs t|S)N)r))r'r#r#r$r/HszVariable.serializeN)rr r!r/r#r#r#r$r0Gs r0c@seZdZddZdS)ValuecCs dj|S)Nz"{0}")r+)r'r#r#r$r/NszValue.serializeN)rr r!r/r#r#r#r$r1Ms r1c@seZdZddZdS)OpcCs t|S)N)r))r'r#r#r$r/Tsz Op.serializeN)rr r!r/r#r#r#r$r2Ss r2implementation_versionplatform_python_implementationimplementation_namepython_full_versionplatform_releaseplatform_versionplatform_machineplatform_systempython_version sys_platformos_namezos.namez sys.platformzplatform.versionzplatform.machinezplatform.python_implementationpython_implementationextracCsttj|d|dS)Nr)r0ALIASESget)sltr#r#r$usrEz===z==z>=z<=z!=z~=>s z(_coerce_parse_result..) isinstancer)resultsr#r#r$rPsrPTcCst|tttfstt|trft|dkrft|dttfrft|dSt|trdd|D}|rdj|Sddj|dSn-t|trdjdd |DS|SdS) Nrrcss!|]}t|ddVqdS)firstFN)_format_marker)rQmr#r#r$ sz!_format_marker.. rNrOcSsg|]}|jqSr#)r/)rQrXr#r#r$rSs z"_format_marker..)rTlistrMrAssertionErrorlenrWjoin)markerrVinnerr#r#r$rWs rWcCs ||kS)Nr#)lhsrhsr#r#r$rEscCs ||kS)Nr#)rarbr#r#r$rEsc Csy%tdj|j|g}Wntk r9YnX|j|Stj|j}|dkrtdj||||||S)Nz#Undefined {0!r} on {1!r} and {2!r}.) rr^r/rcontains _operatorsrArr+)raoprbspecoperr#r#r$_eval_ops%   ric@seZdZdS) UndefinedN)rr r!r#r#r#r$rjs rjcCs:|j|t}t|tr6tdj||S)Nz/{0!r} does not exist in evaluation environment.)rA _undefinedrTrjrr+) environmentnamer&r#r#r$_get_envs rnc Cs,gg}x |D]}t|tttfs4tt|tr`|djt||qt|tr|\}}}t|trt||j }|j }n|j }t||j }|djt |||q|dkst|dkr|jgqWt dd|DS) NrrKrLcss|]}t|VqdS)N)all)rQitemr#r#r$rYsz$_evaluate_markers..rq)rKrL) rTr[rMrr\append_evaluate_markersr0rnr&riany) markersrlgroupsr_rarfrb lhs_value rhs_valuer#r#r$rss"      rscCsCdj|}|j}|dkr?||dt|j7}|S)Nz{0.major}.{0.minor}.{0.micro}finalr)r+ releaselevelr)serial)infoversionkindr#r#r$format_full_versions   rcCsttdr0ttjj}tjj}n d}d}d|d|dtjdtjdtj d tj d tjd tj d tj d dj tjdddtji S)Nimplementation0rcr5r3r=r9r7r:r8r6r4r;.r<)hasattrsysrrr}rmosplatformmachinereleasesystemr;r>r^python_version_tuple)iverr5r#r#r$r s        c@sCeZdZddZddZddZddd ZdS) rcCszyttj||_WnWtk ru}z7dj|||j|jd}t|WYdd}~XnXdS)Nz+Invalid marker: {0!r}, parse error at {1!r})rPMARKER parseString_markersrr+locr)r'r_eerr_strr#r#r$r((s  zMarker.__init__cCs t|jS)N)rWr)r'r#r#r$r*2szMarker.__str__cCsdjt|S)Nz)r+r))r'r#r#r$r-6szMarker.__repr__NcCs2t}|dk r"|j|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)rupdatersr)r'rlcurrent_environmentr#r#r$evaluate:s   zMarker.evaluate)rr r!r(r*r-rr#r#r#r$r's   )O __future__rrroperatorrrrpip._vendor.pyparsingrrrrr r r r r L_compatr_typingr specifiersrrtypingrrrrrrrr)boolOperator__all__ ValueErrorrrrobjectr%r0r1r2VARIABLEr@setParseAction VERSION_CMP MARKER_OP MARKER_VALUEBOOLOP MARKER_VAR MARKER_ITEMsuppressLPARENRPAREN MARKER_EXPR MARKER_ATOMrrPrWltleeqnegegtrerirjrkrnrsrrrr#r#r#r$s    ""4  R