£Á°è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>
3
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 s|  rdS | d dkS )NFr   z'")
isinstancer   )o r   /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/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>$   s    zEvaluator.<lambda>c             C   s   | |kS )Nr   )r   r   r   r   r   r   %   s    c             C   s   | |kp| |kS )Nr   )r   r   r   r   r   r   &   s    c             C   s   | |kS )Nr   )r   r   r   r   r   r   '   s    c             C   s   | |k S )Nr   )r   r   r   r   r   r   (   s    c             C   s   | |kp| |k S )Nr   )r   r   r   r   r   r   )   s    c             C   s   | |kS )Nr   )r   r   r   r   r   r   *   s    c             C   s   | |kp| |kS )Nr   )r   r   r   r   r   r   +   s    c             C   s   | o|S )Nr   )r   r   r   r   r   r   ,   s    c             C   s   | p|S )Nr   )r   r   r   r   r   r   -   s    c             C   s   | |kS )Nr   )r   r   r   r   r   r   .   s    c             C   s   | |kS )Nr   )r   r   r   r   r   r   /   s    )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||}| j||}| 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j tj tj	 tj
 tj tt tj tj 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sysr4   r1   nameosplatformmachiner   releasesystemr.   r   rA   )r3   r9   r8   r$   r   r   r   default_contextM   s&    


rK   c             C   s   yt | \}}W n2 tk
rB } ztd| |f W Y dd}~X nX |rd|d dkrdtd| |f tt}|rz|j| tj||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(   rF   rD   rG   recompatr   r   r   utilr   r   __all__r   objectr   rK   rN   rP   r   r   r   r   r   <module>	   s   /