£Á°è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>
B
    :a                 @   s   d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ dgZedZd	d
 Zdd ZG dd deZed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   )string_types)in_venvparse_marker)NormalizedVersion	interpretz<((\d+(\.\d+)*\w*)|\'(\d+(\.\d+)*\w*)\'|\"(\d+(\.\d+)*\w*)\")c             C   s   t | tr| sdS | d dkS )NFr   z'")
isinstancer   )o r
   @/opt/alt/python37/lib/python3.7/site-packages/distlib/markers.py_is_literal   s    r   c             C   s6   g }x(t | D ]}|t| d  qW t|S )Nr   )_VERSION_PATTERNfinditerappendNVgroupsset)sresultmr
   r
   r   _get_versions!   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 )Nr
   )r   r   r
   r
   r   r   .   r   c             C   s   | |kp| |kS )Nr
   )r   r   r
   r
   r   r   /   r   c             C   s   | |kS )Nr
   )r   r   r
   r
   r   r   0   r   c             C   s   | |k S )Nr
   )r   r   r
   r
   r   r   1   r   c             C   s   | |kp| |k S )Nr
   )r   r   r
   r
   r   r   2   r   c             C   s   | |kS )Nr
   )r   r   r
   r
   r   r   3   r   c             C   s   | |kp| |kS )Nr
   )r   r   r
   r
   r   r   4   r   c             C   s   | o|S )Nr
   )r   r   r
   r
   r   r   5   r   c             C   s   | p|S )Nr
   )r   r   r
   r
   r   r   6   r   c             C   s   | |kS )Nr
   )r   r   r
   r
   r   r   7   r   c             C   s   | |kS )Nr
   )r   r   r
   r
   r   r   8   r   )z==z===z~=z!=<z<=>z>=andorinznot inc       	      C   s"  t |trB|d dkr$|dd }n||kr8td| || }nt |tsPt|d }|| jkrntd| |d }|d	 }t|d rt|d	 rtd
|||f | ||}| ||}|dks|dkr|dkrt	|}t	|}n$|dkr|dkrt	|}t
|}| j| ||}|S )z
        Evaluate a marker expression returned by the :func:`parse_requirement`
        function in the specified context.
        r   z'"r   zunknown variable: %sopzop not implemented: %slhsrhszinvalid comparison: %s %s %spython_version)r   z<=r   z>=z===z==z!=z~=)r    znot in)r   r   SyntaxErrordictAssertionError
operationsNotImplementedErrorr   evaluater   r   )	selfexprcontextr   r"   ZelhsZerhsr#   r$   r
   r
   r   r+   ;   s2    



zEvaluator.evaluateN)__name__
__module____qualname____doc__r)   r+   r
   r
   r
   r   r   '   s   r   z\d+\.\d+c              C   s   dd } t tdr(| tjj}tjj}nd}d}t }t|}|	d}||t
jt t t t t tt ||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versionkindr
   r
   r   format_full_version`   s
    z,default_context.<locals>.format_full_versionimplementation0 r   )implementation_nameimplementation_versionZos_nameZplatform_machineZplatform_python_implementationZplatform_releaseZplatform_systemZplatform_versionZplatform_in_venvZpython_full_versionr%   Zsys_platform)hasattrsysr>   r;   nameplatformr%   _DIGITSmatchgrouposmachineZpython_implementationreleasesystemr8   r   )r=   rB   rA   Zppvr   Zpvr   r
   r
   r   default_context_   s,    




rN   c          
   C   s   yt | \}}W n2 tk
rB } ztd| |f W d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      s    	"
)N)r2   rJ   rerD   rF   compatr   utilr   r   r;   r   r   __all__compiler   r   r   objectr   rG   rN   rQ   rS   r   r
   r
   r
   r   <module>	   s$   
6
"