Viewing File: /opt/hc_python/lib/python3.12/site-packages/distlib/__pycache__/markers.cpython-312.pyc

�

]��g,���dZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZdgZ
ejd�Zd	d
hZd�Zd�Zd
�ZGd�de�Zejd�Zd�Ze�Z[e�Zdd�Zy)zG
Parser for the environment markers micro-language defined in PEP 508.
�N�)�string_types)�in_venv�parse_marker)�
LegacyVersion�	interpretz<((\d+(\.\d+)*\w*)|\'(\d+(\.\d+)*\w*)\'|\"(\d+(\.\d+)*\w*)\")�python_version�python_full_versionc�6�t|t�xr|tvS�N)�
isinstancer�_VERSION_MARKERS)�ss �>/opt/hc_python/lib/python3.12/site-packages/distlib/markers.py�_is_version_markerrs���a��&�@�1�0@�+@�@�c�6�t|t�r|sy|ddvS)NFr�'")r
r)�os r�_is_literalr"s���a��&�a���Q�4�5�=�rc��tj|�D�chc]}t|j�d��� c}Scc}w)Nr)�_VERSION_PATTERN�finditer�LV�groups)r�ms  r�
_get_versionsr(s6��'7�'@�'@��'C�D�'C�!�B�q�x�x�z�!�}��'C�D�D��Ds�#>c
�L�eZdZdZd�d�d�d�d�d�d�d	�d
�d�d�d
�d�Zd�Zy)�	Evaluatorz<
    This class is used to evaluate marker expressions.
    c��||k(Sr���x�ys  r�<lambda>zEvaluator.<lambda>2���1��6rc��||k(Srr!r"s  rr%zEvaluator.<lambda>3s��A��Frc��||k(xs||kDSrr!r"s  rr%zEvaluator.<lambda>4���1��6�?�Q��U�?rc��||k7Srr!r"s  rr%zEvaluator.<lambda>5r&rc��||kSrr!r"s  rr%zEvaluator.<lambda>6���!�a�%rc��||k(xs||kSrr!r"s  rr%zEvaluator.<lambda>7r)rc��||kDSrr!r"s  rr%zEvaluator.<lambda>8r,rc��||k(xs||kDSrr!r"s  rr%zEvaluator.<lambda>9r)rc��|xr|Srr!r"s  rr%zEvaluator.<lambda>:s
��A�G�!�Grc��|xs|Srr!r"s  rr%zEvaluator.<lambda>;s
��1�6��6rc�
�||vSrr!r"s  rr%zEvaluator.<lambda><s��1��6rc�
�||vSrr!r"s  rr%zEvaluator.<lambda>=s��q��zr)�==�===�~=�!=�<�<=�>�>=�and�or�in�not inc�n�t|t�r'|ddvr|dd}|S||vrtd|z��||}|St|t�sJ�|d}||jvrtd|z��|d}|d	}t
|d�r"t
|d	�rtd
|�d|�d|����|j||�}|j||�}t|�st|�r|dvrt|�}t|�}n%t|�r|d
vrt|�}t|�}|j|||�}|S)z�
        Evaluate a marker expression returned by the :func:`parse_requirement`
        function in the specified context.
        rrr���zunknown variable: %s�opzop not implemented: %s�lhs�rhszinvalid comparison: � )r8r9r:r;r5r4r7r6)r>r?)r
r�SyntaxError�dict�
operations�NotImplementedErrorr�evaluaterrr)	�self�expr�context�resultrB�elhs�erhsrCrDs	         rrJzEvaluator.evaluate@sT��
�d�L�)��A�w�%���a����2�
�/�w�&�%�&<�t�&C�D�D� ����*�
�'�d�D�)�)�)��d��B�����(�)�*B�R�*G�H�H���;�D���;�D��4��;�'�K��U��,D�!�D�"�d�"S�T�T��-�-��g�.�C��-�-��g�.�C�#�D�)�-?��-E��I�I���g����g��#�D�)�b�4D�.D���g��#�C�(��(�T�_�_�R�(��c�2�F��
rN)�__name__�
__module__�__qualname__�__doc__rHrJr!rrrr,s9���
"�"�*�!�
�*�
�*�#�!�!�)�
�J� rrz\d+\.\d+c
�J�d�}ttd�r;|tjj�}tjj}nd}d}tj�}tj|�}|jd�}||tjtj�tj�tj�tj�tj�tt!��||tj
d�}|S)Nc��|j�d|j�d|j��}|j}|dk7r||dt	|j
�zz
}|S)N�.�finalr)�major�minor�micro�releaselevel�str�serial)�info�version�kinds   r�format_full_versionz,default_context.<locals>.format_full_versionhsM�� $�
�
�D�J�J��
�
�C��� � ���7�?��t�A�w��T�[�[�!1�1�1�G��r�implementation�0�r)�implementation_name�implementation_version�os_name�platform_machine�platform_python_implementation�platform_release�platform_system�platform_version�platform_in_venvr
r	�sys_platform)�hasattr�sysrcr`�name�platformr	�_DIGITS�match�group�os�machine�python_implementation�release�systemr]r)rbrgrf�ppvr�pvrNs       r�default_contextr~fs�����s�$�%�!4�S�5G�5G�5O�5O�!P��!�0�0�5�5��!$�� ��
�
!�
!�
#�C��
�
�c��A�	
�����B�2�"8��7�7�$�,�,�.�*2�*H�*H�*J�$�,�,�.�#�?�?�,�$�,�,�.���	�N�"�����
�F��Mrc�
�	t|�\}}|r|ddk7rtd|�d|����tt�}|r|j|�tj||�S#t$r}td|�d|����d}~wwxYw)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: z: Nr�#z$unexpected trailing data in marker: )r�	ExceptionrFrG�DEFAULT_CONTEXT�update�	evaluatorrJ)�marker�execution_contextrL�rest�erMs      rrr�s���U�!�&�)�
��d���Q��3���&�RV�W�X�X��?�#�G�����(�)����d�G�,�,���U���QR�S�T�T��U�s�A#�#	B�,A=�=Br)rTrw�rerqrs�compatr�utilrrr`rr�__all__�compilerrrrr�objectrrtr~r�r�rr!rr�<module>r�s����
�	�
�� �'�(��-���2�:�:�]�^��$�&;�<��A��E�4��4�n�"�*�*�[�
!��!�H"�#����K�	�-r
Back to Directory File Manager