1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
U
H=®d#ã@sŠdZddlZddlZddlZddlZddlmZmZmZddl    m
Z
m Z dgZ dd„Z Gd    d
„d
eƒZd d „ZeƒZ[eƒZdd d„ZdS)zG
Parser for the environment markers micro-language defined in PEP 508.
éNé)Úpython_implementationÚurlparseÚ string_types)Úin_venvÚ parse_markerÚ    interpretcCst|tƒr|sdS|ddkS)NFrú'")Ú
isinstancer)Úo©r úRD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_vendor/distlib/markers.pyÚ _is_literalsrc @sfeZdZdZdd„dd„dd„dd„dd„dd„d    d„d
d„d d„d d„d d„dd„dœ Zdd„ZdS)Ú    Evaluatorz;
    This class is used to evaluate marker expessions.
    cCs||kS©Nr ©ÚxÚyr r r Ú<lambda>$ózEvaluator.<lambda>cCs||kSrr rr r r r%rcCs||kp||kSrr rr r r r&rcCs||kSrr rr r r r'rcCs||kSrr rr r r r(rcCs||kp||kSrr rr r r r)rcCs||kSrr rr r r r*rcCs||kp||kSrr rr r r r+rcCs|o|Srr rr r r r,rcCs|p|Srr rr r r r-rcCs||kSrr rr r r r.rcCs||kSrr rr r r r/r) z==z===z~=z!=ú<z<=ú>z>=ÚandÚorÚinznot inc    CsÔt|tƒrB|ddkr$|dd…}qÐ||kr8td|ƒ‚||}nŽt|tƒsPt‚|d}||jkrntd|ƒ‚|d}|d    }t|dƒr¨t|d    ƒr¨td
|||fƒ‚| ||¡}| ||¡}|j|||ƒ}|S) zƒ
        Evaluate a marker expression returned by the :func:`parse_requirement`
        function in the specified context.
        rr    réÿÿÿÿzunknown variable: %sÚopzop not implemented: %sÚlhsÚrhszinvalid comparison: %s %s %s)    r
rÚ SyntaxErrorÚdictÚAssertionErrorÚ
operationsÚNotImplementedErrorrÚevaluate)    ÚselfÚexprÚcontextÚresultrZelhsZerhsrrr r r r$2s$
 
 
   zEvaluator.evaluateN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__r"r$r r r r rsôrc Cs€dd„}ttdƒr(|tjjƒ}tjj}nd}d}||tjt ¡t ¡t     ¡t 
¡t ¡t t ƒƒt  ¡t  ¡dd…tjdœ }|S)NcSs<d|j|j|jf}|j}|dkr8||dt|jƒ7}|S)Nz%s.%s.%sÚfinalr)ÚmajorÚminorÚmicroÚ releaselevelÚstrÚserial)ÚinfoÚversionÚkindr r r Úformat_full_versionNs
z,default_context.<locals>.format_full_versionÚimplementationÚ0Úé) Úimplementation_nameÚimplementation_versionÚos_nameÚplatform_machineÚplatform_python_implementationÚplatform_releaseÚplatform_systemÚplatform_versionZplatform_in_venvÚpython_full_versionÚpython_versionÚ sys_platform)ÚhasattrÚsysr8r5ÚnameÚosÚplatformÚmachinerÚreleaseÚsystemr2rrE)r7r=r<r(r r r Údefault_contextMs(
 
ôrOc
Cs†zt|ƒ\}}Wn2tk
rB}ztd||fƒ‚W5d}~XYnX|rd|ddkrdtd||fƒ‚ttƒ}|rz| |¡t ||¡S)zò
    Interpret a marker and return a result depending on environment.
 
    :param marker: The marker to interpret.
    :type marker: str
    :param execution_context: The context used for name lookup.
    :type execution_context: mapping
    z)Unable to interpret marker syntax: %s: %sNrú#z*unexpected trailing data in marker: %s: %s)rÚ    Exceptionrr ÚDEFAULT_CONTEXTÚupdateÚ    evaluatorr$)ÚmarkerZexecution_contextr&ÚrestÚer'r r r rqs    "
)N)r,rJrHrKÚreÚcompatrrrÚutilrrÚ__all__rÚobjectrrOrRrTrr r r r Ú<module>s/