£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    .e#                     @   s   d Z ddlZddlZddlZddlZddlmZmZmZ ddl	m
Z
mZ dgZdd ZG d	d
 d
eZdd Ze Z[e ZdddZdS )zG
Parser for the environment markers micro-language defined in PEP 508.
    N   )python_implementationurlparsestring_types)in_venvparse_marker	interpretc                 C   s   t | tr| sdS | d dkS )NFr   '")
isinstancer   )o r   ?/usr/lib/python3.8/site-packages/pip/_vendor/distlib/markers.py_is_literal   s    r   c                   @   sf   e Zd ZdZdd dd dd dd dd dd d	d d
d dd dd dd dd dZdd ZdS )	Evaluatorz;
    This class is used to evaluate marker expessions.
    c                 C   s   | |kS Nr   xyr   r   r   <lambda>$       zEvaluator.<lambda>c                 C   s   | |kS r   r   r   r   r   r   r   %   r   c                 C   s   | |kp| |kS r   r   r   r   r   r   r   &   r   c                 C   s   | |kS r   r   r   r   r   r   r   '   r   c                 C   s   | |k S r   r   r   r   r   r   r   (   r   c                 C   s   | |kp| |k S r   r   r   r   r   r   r   )   r   c                 C   s   | |kS r   r   r   r   r   r   r   *   r   c                 C   s   | |kp| |kS r   r   r   r   r   r   r   +   r   c                 C   s   | o|S r   r   r   r   r   r   r   ,   r   c                 C   s   | p|S r   r   r   r   r   r   r   -   r   c                 C   s   | |kS r   r   r   r   r   r   r   .   r   c                 C   s   | |kS r   r   r   r   r   r   r   /   r   )z==z===z~=z!=<z<=>z>=andorinznot inc           	      C   s   t |trB|d dkr$|dd }q||kr8td| || }nt |tsPt|d }|| jkrntd| |d }|d	 }t|d rt|d	 rtd
|||f | ||}| ||}| j| ||}|S )z
        Evaluate a marker expression returned by the :func:`parse_requirement`
        function in the specified context.
        r   r	   r   zunknown variable: %sopzop not implemented: %slhsrhszinvalid comparison: %s %s %s)	r
   r   SyntaxErrordictAssertionError
operationsNotImplementedErrorr   evaluate)	selfexprcontextresultr   ZelhsZerhsr   r   r   r   r   r$   2   s$    


zEvaluator.evaluateN)__name__
__module____qualname____doc__r"   r$   r   r   r   r   r      s   r   c                  C   s   dd } t tdr(| tjj}tjj}nd}d}||tjt t t	 t
 t tt t t d d tjd}|S )Nc                 S   s<   d| j | j| jf }| j}|dkr8||d t| j 7 }|S )Nz%s.%s.%sfinalr   )majorminormicroreleaselevelstrserial)infoversionZkindr   r   r   format_full_versionN   s
    z,default_context.<locals>.format_full_versionimplementation0    )implementation_nameimplementation_versionZos_nameZplatform_machineZplatform_python_implementationZplatform_releaseZplatform_systemZplatform_versionZplatform_in_venvZpython_full_versionpython_versionZsys_platform)hasattrsysr7   r5   nameosplatformmachiner   releasesystemr2   r   r=   )r6   r<   r;   r(   r   r   r   default_contextM   s(    

rF   c              
   C   s   zt | \}}W n2 tk
rB } ztd| |f W 5 d}~X Y nX |rd|d dkrdtd| |f tt}|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   	Exceptionr   r    DEFAULT_CONTEXTupdate	evaluatorr$   )ZmarkerZexecution_contextr&   rester'   r   r   r   r   q   s    	"
)N)r,   rA   r?   rB   recompatr   r   r   utilr   r   __all__r   objectr   rF   rI   rK   r   r   r   r   r   <module>   s   /