U �Qab8 � @s@ddlmZmZmZddlZddlZddlZddlZddlm Z m Z m Z m Z ddlm Z mZmZmZddlmZddlmZddlmZmZd d d d d gZGdd �d e�ZGdd �d e�ZGdd �d e�ZGdd�de�ZGdd�de�ZGdd�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"ddddd+�Z#e"�$d,d-��ed.�ed/�Bed0�Bed1�Bed2�Bed3�Bed4�Bed5�BZ%e%ed6�Bed7�BZ&e&�$d8d-��ed9�ed:�BZ'e'�$d;d-��ed<�ed=�BZ(e"e'BZ)ee)e&e)�Z*e*�$d>d-��ed?��+�Z,ed@��+�Z-e�Z.e*ee,e.e-�BZ/e.e/e e(e.�>e e.e Z0dAdB�Z1dSdDdE�Z2dFd-�dGd-�ej3ej4ej5ej6ej7ej8dH�Z9dIdJ�Z:e�Z;dKdL�ZdQd �Z?GdRd �d e�Z@dS)T�)�absolute_import�division�print_functionN)�ParseException� ParseResults� stringStart� stringEnd)� ZeroOrMore�Group�Forward� QuotedString)�Literal�)� string_types)� Specifier�InvalidSpecifier� InvalidMarker�UndefinedComparison�UndefinedEnvironmentName�Marker�default_environmentc@seZdZdZdS)rzE An invalid marker was found, users should refer to PEP 508. N��__name__� __module__� __qualname__�__doc__�rr�K/usr/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/markers.pyrsc@seZdZdZdS)rzP An invalid operation was attempted on a value that doesn't support it. Nrrrrrrsc@seZdZdZdS)rz\ A name was attempted to be used that does not exist inside of the environment. Nrrrrrr%sc@s,eZdZdd�Zdd�Zdd�Zdd�Zd S) �NodecCs ||_dS�N)�value)�selfr rrr�__init__.sz Node.__init__cCs t|j�Sr)�strr �r!rrr�__str__1sz Node.__str__cCsd�|jjt|��S)Nz <{0}({1!r})>)�format� __class__rr#r$rrr�__repr__4sz Node.__repr__cCst�dSr)�NotImplementedErrorr$rrr� serialize7szNode.serializeN)rrrr"r%r(r*rrrrr,src@seZdZdd�ZdS)�VariablecCst|�Sr�r#r$rrrr*=szVariable.serializeN�rrrr*rrrrr+;sr+c@seZdZdd�ZdS)�ValuecCs d�|�S)Nz"{0}")r&r$rrrr*CszValue.serializeNr-rrrrr.Asr.c@seZdZdd�ZdS)�OpcCst|�Srr,r$rrrr*Isz Op.serializeNr-rrrrr/Gsr/�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)r;r<r=r>r?r@cCstt�|d|d��S�Nr)r+�ALIASES�get��s�l�trrr�i�rHz===�==�>=�<=�!=z~=�>�<�not in�incCs t|d�SrA)r/rDrrrrHwrI�'�"cCs t|d�SrA)r.rDrrrrHzrI�and�orcCs t|d�SrA)�tuplerDrrrrH�rI�(�)cCs t|t�rdd�|D�S|SdS)NcSsg|] }t|��qSr)�_coerce_parse_result)�.0�irrr� �sz(_coerce_parse_result..)� isinstancer)�resultsrrrrY�s rYTcCs�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�rZ�mrrr� �sz!_format_marker..� rWrXcSsg|] }|���qSr)r*rarrrr\�sz"_format_marker..)r]�listrVr�AssertionError�lenr`�join)�markerr_�innerrrrr`�s�    r`cCs||kSrr��lhs�rhsrrrrH�rIcCs||kSrrrkrrrrH�rI)rQrPrOrLrJrMrKrNcCslztd�|��|g��}Wntk r.Yn X|�|�St�|���}|dkrbtd�|||���|||�S)N�z#Undefined {0!r} on {1!r} and {2!r}.) rrhr*r�contains� _operatorsrCrr&)rl�oprm�specZoperrrr�_eval_op�s  �rscCs&|�|t�}|tkr"td�|���|S)Nz/{0!r} does not exist in evaluation environment.)rC� _undefinedrr&)� environment�namer rrr�_get_env�s  �rwc 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 t dd�|D��S)N�����)rTrUrUcss|]}t|�VqdSr)�all)rZ�itemrrrrc�sz$_evaluate_markers..) r]rerVrrf�append�_evaluate_markersr+rwr rs�any) Zmarkersru�groupsrirlrqrmZ lhs_valueZ rhs_valuerrrr|�s"        r|cCs2d�|�}|j}|dkr.||dt|j�7}|S)Nz{0.major}.{0.minor}.{0.micro}�finalr)r&� releaselevelr#�serial)�info�versionZkindrrr�format_full_version�s  r�c Cslttd�r ttjj�}tjj}nd}d}||tjt��t� �t� �t��t� �t� �t� �dd�tjd� S)N�implementation�0rn�) r2r0r:r6r4r7r5r3r1r8r9) �hasattr�sysr�r�r�rv�os�platform�machine�release�systemr8r@)Ziverr2rrrr�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}�)rY�MARKERZ parseString�_markersrr&Zlocr)r!ri�eZerr_strrrrr"s�zMarker.__init__cCs t|j�Sr)r`r�r$rrrr%szMarker.__str__cCsd�t|��S)Nz)r&r#r$rrrr(szMarker.__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!ruZcurrent_environmentrrr�evaluate s  zMarker.evaluate)N)rrrr"r%r(r�rrrrrs)T)AZ __future__rrr�operatorr�r�r�Zpkg_resources.extern.pyparsingrrrrr r r r r �LZ_compatrZ specifiersrr�__all__� ValueErrorrrr�objectrr+r.r/ZVARIABLErBZsetParseActionZ VERSION_CMPZ MARKER_OPZ MARKER_VALUEZBOOLOPZ MARKER_VARZ MARKER_ITEM�suppressZLPARENZRPARENZ MARKER_EXPRZ MARKER_ATOMr�rYr`�lt�le�eq�ne�ge�gtrprsrtrwr|r�rrrrrr�s�  ��������� � � � � ���������������     �