Your IP : 216.73.216.224


Current Path : /lib/python3/dist-packages/packaging/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/packaging/__pycache__/markers.cpython-38.pyc

U

��]�$�	@s�ddlmZmZmZddlZddlZddlZddlZddlm	Z	m
Z
mZmZddlm
Z
mZmZmZddlmZddlmZddlmZdd	lmZmZer�dd
lmZmZmZmZmZm Z m!Z!ee"e"ge#fZ$ddd
ddgZ%Gdd�de&�Z'Gdd�de&�Z(Gdd
�d
e&�Z)Gdd�de*�Z+Gdd�de+�Z,Gdd�de+�Z-Gdd�de+�Z.ed�ed�Bed�Bed�Bed�Bed �Bed!�Bed"�Bed#�Bed$�Bed%�Bed&�Bed'�Bed(�Bed)�Bed*�Bed+�Bed,�BZ/d%d$d d!ddd-�Z0e/�1d.d/��ed0�ed1�Bed2�Bed3�Bed4�Bed5�Bed6�Bed7�BZ2e2ed8�Bed9�BZ3e3�1d:d/��ed;�ed<�BZ4e4�1d=d/��ed>�ed?�BZ5e/e4BZ6ee6e3e6�Z7e7�1d@d/��edA��8�Z9edB��8�Z:e�Z;e7ee9e;e:�BZ<e;e<e
e5e;�>ee;eZ=dCdD�Z>dWdFdG�Z?dHd/�dId/�ej@ejAejBejCejDejEdJ�ZFdKdL�ZGGdMdN�dNe*�ZHeH�ZIdOdP�ZJdQdR�ZKdSdT�ZLdUd�ZMGdVd�de*�ZNdS)X�)�absolute_import�division�print_functionN)�ParseException�ParseResults�stringStart�	stringEnd)�
ZeroOrMore�Group�Forward�QuotedString)�Literal�)�string_types)�MYPY_CHECK_RUNNING)�	Specifier�InvalidSpecifier)�Any�Callable�Dict�List�Optional�Tuple�Union�
InvalidMarker�UndefinedComparison�UndefinedEnvironmentName�Marker�default_environmentc@seZdZdZdS)rzE
    An invalid marker was found, users should refer to PEP 508.
    N��__name__�
__module__�__qualname__�__doc__�r$r$�3/usr/lib/python3/dist-packages/packaging/markers.pyr"sc@seZdZdZdS)rzP
    An invalid operation was attempted on a value that doesn't support it.
    Nrr$r$r$r%r(sc@seZdZdZdS)rz\
    A name was attempted to be used that does not exist inside of the
    environment.
    Nrr$r$r$r%r.sc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�NodecCs
||_dS�N)�value)�selfr(r$r$r%�__init__6sz
Node.__init__cCs
t|j�Sr')�strr(�r)r$r$r%�__str__:szNode.__str__cCsd�|jjt|��S)Nz<{0}({1!r})>)�format�	__class__r r+r,r$r$r%�__repr__>sz
Node.__repr__cCst�dSr')�NotImplementedErrorr,r$r$r%�	serializeBszNode.serializeN)r r!r"r*r-r0r2r$r$r$r%r&5sr&c@seZdZdd�ZdS)�VariablecCst|�Sr'�r+r,r$r$r%r2HszVariable.serializeN�r r!r"r2r$r$r$r%r3Gsr3c@seZdZdd�ZdS)�ValuecCs
d�|�S)Nz"{0}")r.r,r$r$r%r2NszValue.serializeNr5r$r$r$r%r6Msr6c@seZdZdd�ZdS)�OpcCst|�Sr'r4r,r$r$r%r2TszOp.serializeNr5r$r$r$r%r7Ssr7�implementation_version�platform_python_implementation�implementation_name�python_full_version�platform_release�platform_version�platform_machine�platform_system�python_version�sys_platform�os_name�os.name�sys.platform�platform.version�platform.machine�platform.python_implementation�python_implementationZextra)rCrDrErFrGrHcCstt�|d|d��S�Nr)r3�ALIASES�get��s�l�tr$r$r%�<lambda>u�rPz===�==�>=�<=�!=z~=�>�<�not in�incCst|d�SrI)r7rLr$r$r%rP|rQ�'�"cCst|d�SrI)r6rLr$r$r%rPrQ�and�orcCst|d�SrI)�tuplerLr$r$r%rP�rQ�(�)cCs t|t�rdd�|D�S|SdS)NcSsg|]}t|��qSr$)�_coerce_parse_result)�.0�ir$r$r%�
<listcomp>�sz(_coerce_parse_result.<locals>.<listcomp>)�
isinstancer)Zresultsr$r$r%ra�s
raTcCs�t|tttf�st�t|t�rHt|�dkrHt|dttf�rHt|d�St|t�r�dd�|D�}|rnd�|�Sdd�|�dSn"t|t�r�d�dd	�|D��S|SdS)
Nrrcss|]}t|dd�VqdS)F)�firstN)�_format_marker�rb�mr$r$r%�	<genexpr>�sz!_format_marker.<locals>.<genexpr>� r_r`cSsg|]}|���qSr$)r2rhr$r$r%rd�sz"_format_marker.<locals>.<listcomp>)re�listr^r�AssertionError�lenrg�join)�markerrf�innerr$r$r%rg�s �
��


rgcCs||kSr'r$��lhs�rhsr$r$r%rP�rQcCs||kSr'r$rrr$r$r%rP�rQ)rYrXrWrTrRrUrSrVcCslztd�|��|g��}Wntk
r.YnX|�|�St�|���}|dkrbtd�|||���|||�S)N�z#Undefined {0!r} on {1!r} and {2!r}.)	rror2r�contains�
_operatorsrKrr.)rs�oprt�specZoperr$r$r%�_eval_op�s
�rzc@seZdZdS)�	UndefinedN)r r!r"r$r$r$r%r{�sr{cCs(|�|t�}t|t�r$td�|���|S)Nz/{0!r} does not exist in evaluation environment.)rK�
_undefinedrer{rr.)�environment�namer(r$r$r%�_get_env�s
�rc	Cs�gg}|D]�}t|tttf�s"t�t|t�rB|d�t||��q
t|t�r�|\}}}t|t�rtt||j	�}|j	}n|j	}t||j	�}|d�t
|||��q
|dks�t�|dkr
|�g�q
tdd�|D��S)N���)r\r]r]css|]}t|�VqdSr')�all)rb�itemr$r$r%rjsz$_evaluate_markers.<locals>.<genexpr>)rerlr^rrm�append�_evaluate_markersr3rr(rz�any)	Zmarkersr}�groupsrprsrxrtZ	lhs_valueZ	rhs_valuer$r$r%r��s"



r�cCs2d�|�}|j}|dkr.||dt|j�7}|S)Nz{0.major}.{0.minor}.{0.micro}�finalr)r.�releaselevelr+�serial)�info�versionZkindr$r$r%�format_full_versions

r�cCsrttd�r ttjj�}tjj}nd}d}||tjt��t�	�t�
�t��t��t��d�
t��dd��tjd�S)N�implementation�0ru�.�)r:r8rBr>r<r?r=r;r9r@rA)�hasattr�sysr�r�r�r~�os�platform�machine�release�systemr@rHroZpython_version_tuple)Ziverr:r$r$r%rs"

�c@s.eZdZdd�Zdd�Zdd�Zd
dd	�ZdS)rc
Cs`ztt�|��|_WnFtk
rZ}z(d�|||j|jd��}t|��W5d}~XYnXdS)Nz+Invalid marker: {0!r}, parse error at {1!r}�)ra�MARKERZparseString�_markersrr.Zlocr)r)rp�eZerr_strr$r$r%r*(s�zMarker.__init__cCs
t|j�Sr')rgr�r,r$r$r%r-2szMarker.__str__cCsd�t|��S)Nz<Marker({0!r})>)r.r+r,r$r$r%r06szMarker.__repr__NcCs$t�}|dk	r|�|�t|j|�S)a$Evaluate a marker.

        Return the boolean from evaluating the given marker against the
        environment. environment is an optional argument to override all or
        part of the determined environment.

        The environment is determined from the current Python process.
        N)r�updater�r�)r)r}Zcurrent_environmentr$r$r%�evaluate:s

zMarker.evaluate)N)r r!r"r*r-r0r�r$r$r$r%r's
)T)OZ
__future__rrr�operatorr�r�r�Z	pyparsingrrrrr	r
rrr
�LZ_compatrZ_typingrZ
specifiersrr�typingrrrrrrrr+�boolZOperator�__all__�
ValueErrorrrr�objectr&r3r6r7ZVARIABLErJZsetParseActionZVERSION_CMPZ	MARKER_OPZMARKER_VALUEZBOOLOPZ
MARKER_VARZMARKER_ITEM�suppressZLPARENZRPARENZMARKER_EXPRZMARKER_ATOMr�rarg�lt�le�eq�ne�ge�gtrwrzr{r|rr�r�rrr$r$r$r%�<module>s�$�	��������	�
���
�������>�
�