Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/packaging/__pycache__/markers.cpython-311.pyc
�

�h �	�p�UddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZddlm
Z
mZmZmZmZmZddlmZddlmZmZddlmZgd�ZeeegefZGd	�d
e��Z Gd�de��Z!Gd
�de��Z"dedefd�Z#	d+deeee
efde	edefd�Z$d�d�ej%ej&ej'ej(ej)ej*d�Z+eeefe,d<dedededefd�Z-dedede
ed ffd!�Z.d"ed#eeefdefd$�Z/d%d&defd'�Z0deeeffd(�Z1Gd)�d*��Z2dS),�N)�Any�Callable�Dict�List�Optional�Tuple�Union�)�
MarkerAtom�
MarkerList�Op�Value�Variable�parse_marker)�ParserSyntaxError)�InvalidSpecifier�	Specifier��canonicalize_name)�
InvalidMarker�UndefinedComparison�UndefinedEnvironmentName�Marker�default_environmentc��eZdZdZdS)rzE
    An invalid marker was found, users should refer to PEP 508.
    N��__name__�
__module__�__qualname__�__doc__���H/opt/cloudlinux/venv/lib64/python3.11/site-packages/packaging/markers.pyrr"����������r"rc��eZdZdZdS)rzP
    An invalid operation was attempted on a value that doesn't support it.
    Nrr!r"r#rr(r$r"rc��eZdZdZdS)rz\
    A name was attempted to be used that does not exist inside of the
    environment.
    Nrr!r"r#rr.s���������r"r�results�returnc�r�t|dt��r�|d\}}}t|t��r/|jdkr$t	|j��}t|��}nCt|t��r.|jdkr#t	|j��}t|��}|||f|d<|S)z!
    Normalize extra values.
    r�extra)�
isinstance�tupler�valuerr)r'�lhs�op�rhs�normalized_extras     r#�_normalize_extra_valuesr25s����'�!�*�e�$�$�"��q�z���R���c�8�$�$�	*���g�)=�)=�0���;�;���(�)�)�C�C�
��X�
&�
&�	*�3�9��+?�+?�0���;�;���(�)�)�C��"�c�\���
��Nr"T�marker�firstc��t|tttf��sJ�t|t��rJt	|��dkr7t|dttf��rt|d��St|t��r>d�|D��}|rd�|��Sdd�|��zdzSt|t��rd�d�|D����S|S)Nr
rc3�8K�|]}t|d���V��dS)F)r4N)�_format_marker��.0�ms  r#�	<genexpr>z!_format_marker.<locals>.<genexpr>Ws/����@�@�A����/�/�/�@�@�@�@�@�@r"� �(�)c�6�g|]}|�����Sr!)�	serializer8s  r#�
<listcomp>z"_format_marker.<locals>.<listcomp>]s ��7�7�7�1������7�7�7r")r+�listr,�str�lenr7�join)r3r4�inners   r#r7r7Es���f�t�U�C�0�1�1�1�1�1�	�6�4� � �)���K�K�1����v�a�y�4��-�0�0�
��f�Q�i�(�(�(��&�$���	�@�@��@�@�@���	/��8�8�E�?�?�"�����%���(�3�.�.�	�F�E�	"�	"���x�x�7�7��7�7�7�8�8�8��
r"c�
�||vS�Nr!�r.r0s  r#�<lambda>rJcs
��3�#�:�r"c�
�||vSrHr!rIs  r#rJrJds
��s�#�~�r")�inznot in�<z<=z==z!=z>=�>�
_operatorsr.r/r0c	�d�	td�|���|g����}|�|d���S#t$rYnwxYwt
�|�����}|�td|�d|�d|�d����|||��S)N�T)�prereleasesz
Undefined z on z and �.)rrEr@�containsrrO�getr)r.r/r0�spec�opers     r#�_eval_oprXns���4�����"�,�,�.�.�#�!6�7�7�8�8���}�}�S�d�}�3�3�3���
�
�
���
����
 *�~�~�b�l�l�n�n�=�=�D��|�!�"M�r�"M�"M��"M�"M�S�"M�"M�"M�N�N�N��4��S�>�>�s�6A�
A�A�values�key.c�D�|dkrtd�|D����S|S)Nr*c3�4K�|]}t|��V��dSrHr)r9�vs  r#r;z_normalize.<locals>.<genexpr>�s+����:�:�a�&�q�)�)�:�:�:�:�:�:r")r,)rZrYs  r#�
_normalizer^}s1��
�g�~�~��:�:�6�:�:�:�:�:�:��Mr"�markers�environmentc��gg}|D�]%}t|tttf��sJ�t|t��r*|d�t||�����ft|t��r�|\}}}t|t��r|j}||}|j}	n|j}|j}||}	t||	|���\}}	|d�t|||	������|dvsJ�|dkr|�g����'td�|D����S)N���)rZ)�and�orrdc3�4K�|]}t|��V��dSrH)�all)r9�items  r#r;z$_evaluate_markers.<locals>.<genexpr>�s(����,�,�T�s�4�y�y�,�,�,�,�,�,r")r+rBr,rC�append�_evaluate_markersrr-r^rX�any)
r_r`�groupsr3r.r/r0�environment_key�	lhs_value�	rhs_values
          r#riri�sX�� "�t�F��"�"���&�4���"4�5�5�5�5�5��f�d�#�#�	"��2�J���/���D�D�E�E�E�E�
���
&�
&�	"�!�L�C��S��#�x�(�(�
9�"%�)��'��8�	��I�	�	��I�	�"%�)��'��8�	�#-�i���#X�#X�#X� �I�y��2�J���h�y�"�i�@�@�A�A�A�A��]�*�*�*�*���~�~��
�
�b�!�!�!���,�,�V�,�,�,�,�,�,r"�infozsys._version_infoc��d�|��}|j}|dkr ||dt|j��zz
}|S)Nz{0.major}.{0.minor}.{0.micro}�finalr)�format�releaselevelrC�serial)ro�version�kinds   r#�format_full_versionrw�sH��-�4�4�T�:�:�G���D��w����4��7�S���-�-�-�-���Nr"c���ttjj��}tjj}||t
jt
j��t
j��t
j	��t
j��t
j
��t
j��d�t
j
��dd���tjd�S)NrS�)�implementation_name�implementation_version�os_name�platform_machine�platform_release�platform_system�platform_version�python_full_version�platform_python_implementation�python_version�sys_platform)rw�sys�implementationru�name�os�platform�machine�release�systemr��python_implementationrE�python_version_tuple)�iverrzs  r#rr�s����s�1�9�:�:�D��,�1��2�"&��7�$�,�.�.�$�,�.�.�#�?�,�,�$�,�.�.�'�6�8�8�*2�*H�*J�*J��(�(�8�#@�#B�#B�2�A�2�#F�G�G�����r"c��eZdZdeddfd�Zdefd�Zdefd�Zdefd�Zde	de
fd	�Zdd
ee
eefde
fd�ZdS)
rr3r(Nc��	tt|����|_dS#t$r"}t	t|����|�d}~wwxYwrH)r2�
_parse_marker�_markersrrrC)�selfr3�es   r#�__init__zMarker.__init__�sY��	/�3�M�&�4I�4I�J�J�D�M�M�M��"!�	/�	/�	/���A���'�'�Q�.�����	/���s�!%�
A�A�Ac�*�t|j��SrH)r7r��r�s r#�__str__zMarker.__str__�s���d�m�,�,�,r"c��d|�d�S)Nz	<Marker('z')>r!r�s r#�__repr__zMarker.__repr__�s��$�4�$�$�$�$r"c�R�t|jjt|��f��SrH)�hash�	__class__rrCr�s r#�__hash__zMarker.__hash__�s ���T�^�,�c�$�i�i�8�9�9�9r"�otherc�z�t|t��stSt|��t|��kSrH)r+r�NotImplementedrC)r�r�s  r#�__eq__z
Marker.__eq__�s1���%��(�(�	"�!�!��4�y�y�C��J�J�&�&r"r`c��t��}d|d<|�"|�|��|d�d|d<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.
        rQr*)r�updaterir�)r�r`�current_environments   r#�evaluatezMarker.evaluate�s`��2�3�3��')��G�$��"��&�&�{�3�3�3�#�7�+�3�/1�#�G�,� ���0C�D�D�Dr"rH)rrrrCr�r�r��intr�r�boolr�rrr�r!r"r#rr�s�������/�s�/�t�/�/�/�/�2-��-�-�-�-�%�#�%�%�%�%�:�#�:�:�:�:�'�C�'�D�'�'�'�'�E�E�H�T�#�s�(�^�$<�E��E�E�E�E�E�Er"r)T)3�operatorr�r�r��typingrrrrrrr	�_parserrrr
rrrr��
_tokenizerr�
specifiersrr�utilsr�__all__rCr��Operator�
ValueErrorrrrr2r7�lt�le�eq�ne�ge�gtrO�__annotations__rXr^rirwrrr!r"r#�<module>r�si��
�����	�	�	�	�����
�
�
�
�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�����������������*�)�)�)�)�)�3�3�3�3�3�3�3�3�$�$�$�$�$�$������S�#�J��$�%�������J���������*���������z����
�S�
�S�
�
�
�
�"HL����$�s�)�Z��,�-��6>�t�n�������<&�
%�-�-�	��
�+�
�+�
�+�
�+�	��	#�	#�
�D��h���	�	�	��#��2��C��D�����	��	�#�	�%��S��/�	�	�	�	�-�z�-��S�#�X��-�4�-�-�-�-�<�1��c������T�#�s�(�^�����$;E�;E�;E�;E�;E�;E�;E�;E�;E�;Er"