U l a8 @s@ddlmZmZmZddlZddlZddlZddlZddlm Z m Z m Z m Z ddlm Z mZmZmZddlmZddlmZddlmZmZd d d d d gZGdd d eZGdd d eZGdd d eZGdddeZGdddeZGdddeZ GdddeZ!ededBedBedBedBedBedBed Bed!Bed"Bed#Bed$Bed%Bed&Bed'Bed(Bed)Bed*BZ"d#d"ddddd+Z#e"$d,d-ed.ed/Bed0Bed1Bed2Bed3Bed4Bed5BZ%e%ed6Bed7BZ&e&$d8d-ed9ed:BZ'e'$d;d-ed<ed=BZ(e"e'BZ)ee)e&e)Z*e*$d>d-ed?+Z,ed@+Z-eZ.e*ee,e.e-BZ/e.e/e e(e.>e e.e Z0dAdBZ1dSdDdEZ2dFd-dGd-ej3ej4ej5ej6ej7ej8dHZ9dIdJZ:eZ;dKdLZdQd Z?GdRd d eZ@dS)T)absolute_importdivisionprint_functionN)ParseException ParseResults stringStart stringEnd) ZeroOrMoreGroupForward QuotedString)Literal) string_types) SpecifierInvalidSpecifier InvalidMarkerUndefinedComparisonUndefinedEnvironmentNameMarkerdefault_environmentc@seZdZdZdS)rzE An invalid marker was found, users should refer to PEP 508. N__name__ __module__ __qualname____doc__rrhC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-wx4infiz\pkg_resources\_vendor\packaging\markers.pyrsc@seZdZdZdS)rzP An invalid operation was attempted on a value that doesn't support it. Nrrrrrrsc@seZdZdZdS)rz\ A name was attempted to be used that does not exist inside of the environment. Nrrrrrr%sc@s,eZdZddZddZddZddZd S) NodecCs ||_dSN)value)selfr rrr__init__.sz Node.__init__cCs t|jSr)strr r!rrr__str__1sz Node.__str__cCsd|jjt|S)Nz <{0}({1!r})>)format __class__rr#r$rrr__repr__4sz Node.__repr__cCstdSr)NotImplementedErrorr$rrr serialize7szNode.serializeN)rrrr"r%r(r*rrrrr,src@seZdZddZdS)VariablecCst|Srr#r$rrrr*=szVariable.serializeNrrrr*rrrrr+;sr+c@seZdZddZdS)ValuecCs d|S)Nz"{0}")r&r$rrrr*CszValue.serializeNr-rrrrr.Asr.c@seZdZddZdS)OpcCst|Srr,r$rrrr*Isz Op.serializeNr-rrrrr/Gsr/implementation_versionplatform_python_implementationimplementation_namepython_full_versionplatform_releaseplatform_versionplatform_machineplatform_systempython_version sys_platformos_nameos.name sys.platformplatform.versionplatform.machineplatform.python_implementationpython_implementationextra)r;r<r=r>r?r@cCstt|d|dSNr)r+ALIASESgetsltrrrirIz=====>=<=!=z~=><not inincCs t|dSrB)r/rErrrrIwrJ'"cCs t|dSrB)r.rErrrrIzrJandorcCs t|dSrB)tuplerErrrrIrJ()cCs t|trdd|DS|SdS)NcSsg|] }t|qSr)_coerce_parse_result).0irrr sz(_coerce_parse_result..) isinstancer)resultsrrrrZs rZTcCst|tttfstt|trHt|dkrHt|dttfrHt|dSt|trdd|D}|rnd|Sdd|dSn"t|trddd |DS|SdS) Nrrcss|]}t|ddVqdS)F)firstN)_format_markerr[mrrr sz!_format_marker.. rXrYcSsg|] }|qSr)r*rbrrrr]sz"_format_marker..)r^listrWrAssertionErrorlenrajoin)markerr`innerrrrras    racCs||kSrrlhsrhsrrrrIrJcCs||kSrrrlrrrrIrJ)rRrQrPrMrKrNrLrOcCslztd||g}Wntk r.Yn X||St|}|dkrbtd||||||S)Nz#Undefined {0!r} on {1!r} and {2!r}.) rrir*rcontains _operatorsrDrr&)rmoprnspecoperrrr_eval_ops  rucCs&||t}|tkr"td||S)Nz/{0!r} does not exist in evaluation environment.)rD _undefinedrr&) environmentnamer rrr_get_envs  ryc 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)rUrVrVcss|]}t|VqdSr)all)r[itemrrrrdsz$_evaluate_markers..) r^rfrWrrgappend_evaluate_markersr+ryr ruany) markersrwgroupsrjrmrrrn lhs_value rhs_valuerrrr~s"        r~cCs2d|}|j}|dkr.||dt|j7}|S)Nz{0.major}.{0.minor}.{0.micro}finalr)r& releaselevelr#serial)infoversionkindrrrformat_full_versions  rc Cslttdr ttjj}tjj}nd}d}||tjtt t tt t t ddtjd S)Nimplementation0ro) r2r0r:r6r4r7r5r3r1r8r9) hasattrsysrrrrxosplatformmachinereleasesystemr8r@)iverr2rrrrs"   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})rZMARKER parseString_markersrr&locr)r!rjeerr_strrrrr"szMarker.__init__cCs t|jSr)rarr$rrrr%szMarker.__str__cCsdt|S)Nz)r&r#r$rrrr(szMarker.__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)rupdater~r)r!rwcurrent_environmentrrrevaluate s  zMarker.evaluate)N)rrrr"r%r(rrrrrrs)T)A __future__rrroperatorrrrZpkg_resources.extern.pyparsingrrrrr r r r r L_compatr specifiersrr__all__ ValueErrorrrrobjectrr+r.r/VARIABLErCsetParseAction VERSION_CMP MARKER_OP MARKER_VALUEBOOLOP MARKER_VAR MARKER_ITEMsuppressLPARENRPAREN MARKER_EXPR MARKER_ATOMrrZraltleeqnegegtrqrurvryr~rrrrrrrs