£Á°è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
    Re#                 @   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   z'")
isinstancer   )o r   /builddir/build/BUILDROOT/alt-python37-pip-20.2.4-6.el8.x86_64/opt/alt/python37/lib/python3.7/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 )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   '   r   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   *   r   c             C   s   | |kp| |kS )Nr   )r   r   r   r   r   r   +   r   c             C   s   | o|S )Nr   )r   r   r   r   r   r   ,   r   c             C   s   | p|S )Nr   )r   r   r   r   r   r   -   r   c             C   s   | |kS )Nr   )r   r   r   r   r   r   .   r   c             C   s   | |kS )Nr   )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   z'"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versionkindr   r   r   format_full_versionN   s
    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_versionZplatform_in_venvpython_full_versionpython_versionsys_platform)hasattrsysr5   r2   nameosplatformmachiner   releasesystemr/   r   rB   )r4   r:   r9   r%   r   r   r   default_contextM   s&    


rL   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!   )markerZexecution_contextr#   rester$   r   r   r   r   q   s    	"
)N)r)   rG   rE   rH   recompatr   r   r   utilr   r   __all__r   objectr   rL   rO   rQ   r   r   r   r   r   <module>	   s   /