HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux srvntsweb01 6.8.0-55-generic #57-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 12 23:42:21 UTC 2025 x86_64
User: admntserv (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //snap/certbot/5370/lib/python3.12/site-packages/packaging/__pycache__/markers.cpython-312.pyc
�

���i�1�	�P�UddlmZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZm
Z
ddlmZmZmZmZmZddlmZddlmZddlmZmZdd	lmZgd
�ZeeeeeefgefZ e	dZ!dd
hZ"hd�Z#Gd�de$�Z%Gd�de$�Z&Gd�de$�Z'Gd�de�Z(				d)d�Z)d*d�Z*	d+					d,d�Z+d�d�d�ejXejXejZejXd�d�Z.de/d <d-d!�Z0								d.d"�Z1						d/d#�Z2d0d$�Z3d1d%�Z4Gd&�d'�Z5				d2d(�Z6y)3�)�annotationsN)�AbstractSet�Callable�Literal�Mapping�	TypedDict�Union�cast�)�
MarkerAtom�
MarkerList�Op�Value�Variable)�parse_marker)�ParserSyntaxError)�InvalidSpecifier�	Specifier)�canonicalize_name)�Environment�EvaluateContext�
InvalidMarker�Marker�UndefinedComparison�UndefinedEnvironmentName�default_environment)�metadata�	lock_file�requirement�extras�dependency_groups>�python_version�platform_release�python_full_version�implementation_versionc��eZdZdZy)rzE
    An invalid marker was found, users should refer to PEP 508.
    N��__name__�
__module__�__qualname__�__doc__����/build/snapcraft-certbot-817459ae66b3942307a8b35b87e7f45e/parts/certbot/install/lib/python3.12/site-packages/packaging/markers.pyrr(���r-rc��eZdZdZy)rzP
    An invalid operation was attempted on a value that doesn't support it.
    Nr'r,r-r.rr.r/r-rc��eZdZdZy)rz\
    A name was attempted to be used that does not exist inside of the
    environment.
    Nr'r,r-r.rr4s��r-rc��eZdZUded<	ded<	ded<	ded<	ded<	ded<	ded<	ded	<	ded
<	ded<	ded<y
)r�str�implementation_namer%�os_name�platform_machiner#�platform_system�platform_versionr$�platform_python_implementationr"�sys_platformN)r(r)r*�__annotations__r,r-r.rr;s�����>����
�L��
���������������%(�'����9���r-rc�:�t|t�s|S|\}}}t|t�r0|jdk(r!t	|j�}t|�}n?t|t�r/|jdk(r t	|j�}t|�}|||fS)N�extra)�
isinstance�tupler�valuerr)�result�lhs�op�rhs�normalized_extras     r.�_normalize_extrasrF�s����f�e�$��
��L�C��S��#�x� �S�Y�Y�'�%9�,�S�Y�Y�7���$�%��	�C��	"�s�y�y�G�';�,�S�Y�Y�7���$�%����C�<�r-c�>�|D�cgc]
}t|���c}Scc}w)z!
    Normalize extra values.
    )rF)�results�rs  r.�_normalize_extra_valuesrJ�s��
+2�2�Q��a� �2�2��2s�c���t|tttf�sJ�t|t�r5t	|�dk(r't|dttf�rt|d�St|t�r3d�|D�}|rdj
|�Sddj
|�zdzSt|t�r-dj
|D�cgc]}|j���c}�S|Scc}w)Nrrc3�6K�|]}t|d�����y�w)F)�firstN)�_format_marker)�.0�ms  r.�	<genexpr>z!_format_marker.<locals>.<genexpr>�s����@�A����/�/�@�s�� �(�))r>�listr?r3�lenrN�join�	serialize)�markerrM�innerrPs    r.rNrN�s����f�t�U�C�0�1�1�1�	�6�4� ���K�1���v�a�y�4��-�0��f�Q�i�(�(��&�$��@��@����8�8�E�?�"�����%��(�3�.�.�	�F�E�	"��x�x��7�1�����7�8�8��
��8s�C%c�
�||vS�Nr,�rBrDs  r.�<lambda>r^�s
��3�#�:�r-c�
�||vSr\r,r]s  r.r^r^�s
��s�#�~�r-c��y�NFr,��_lhs�_rhss  r.r^r^���r-c��yrar,rbs  r.r^r^�rer-)�inznot in�<z<=z==z!=z>=�>zdict[str, Operator]�
_operatorsc	��|j�}|tvr#	t|�|���}|j|d��St
j
|�}|�td|�d|�d|�d���|||�S#t$rY�@wxYw)NT)�prereleasesz
Undefined z on z and �.)rX�MARKERS_REQUIRING_VERSIONr�containsrrj�getr)rBrCrD�key�op_str�spec�opers       r.�_eval_opru�s���
�\�\�^�F�
�'�'�	8���x��u�-�.�D��=�=��$�=�7�7�&�N�N�6�2�D��|�!�J�r�f�D���u�S�G�1�"M�N�N���S�>��� �	��	�s�A1�1	A=�<A=c��|dk(rt|t�sJd��||fS|tvrJt|t�rt|�t|�fSt|�|D�chc]
}t|���c}fS||fScc}w)Nr=zextra value must be a string)r>r3�MARKERS_ALLOWING_SETr)rBrDrq�vs    r.�
_normalizery�s����g�~��#�s�#�C�%C�C�#��S�z��
�"�"��c�3��%�c�*�,=�c�,B�C�C�%�c�*�3�,O�a�->�q�-A�,O�P�P���8�O��-Ps�A7c	�D�gg}|D�]}t|t�r|djt||���3t|t�r�|\}}}t|t
�r|j}||}|j}	n|j}|j}||}	t|t�sJd��t||	|��\}}	|djt|||	|�����|dk(r|jg���|dk(r��td|����td�|D��S)N���zlhs must be a string)rq�or�andzUnexpected marker c3�2K�|]}t|����y�wr\)�all)rO�items  r.rQz$_evaluate_markers.<locals>.<genexpr>s����,�T�s�4�y�,�s�)r>rU�append�_evaluate_markersr?rr@r3ryru�	TypeError�any)
�markers�environment�groupsrYrBrCrD�environment_key�	lhs_value�	rhs_values
          r.r�r��s��!#�t�F��=���f�d�#��2�J���/���D�E�
���
&�!�L�C��S��#�x�(�"%�)�)��'��8�	��I�I�	��I�I�	�"%�)�)��'��8�	��i��-�E�/E�E�-�#-�i���#X� �I�y��2�J���h�y�"�i�_�U�V�
�t�^��M�M�"��
�u�_���0��
�;�<�<�/=�2�,�V�,�,�,r-c��|j�d|j�d|j��}|j}|dk7r||dt	|j
�zz
}|S)Nrm�finalr)�major�minor�micro�releaselevelr3�serial)�info�version�kinds   r.�format_full_versionr�
sW������A�d�j�j�\��4�:�:�,�7�G����D��w���4��7�S����-�-�-���Nr-c���ttjj�}tjj}||t
jt
j�t
j�t
j�t
j�t
j�t
j�djt
j�dd�tjd�S)Nrm�)r4r%r5r6r#r7r8r$r9r"r:)r��sys�implementationr��name�os�platform�machine�release�systemr"�python_implementationrW�python_version_tuple)�iverr4s  r.rrs����s�1�1�9�9�:�D��,�,�1�1��2�"&��7�7�$�,�,�.�$�,�,�.�#�?�?�,�$�,�,�.�'�6�6�8�*2�*H�*H�*J��(�(�8�#@�#@�#B�2�A�#F�G�����r-c�L�eZdZdd�Zd	d�Zd	d�Zd
d�Zdd�Z		d					d
d�Zy)rc��g|_	tt|��|_y#t$r}t	t|��|�d}~wwxYwr\)�_markersrJ�
_parse_markerrrr3)�selfrY�es   r.�__init__zMarker.__init__%sD��%'��
�	/�3�M�&�4I�J�D�M��"!�	/���A��'�Q�.��	/�s�#�	A�A�Ac�,�t|j�Sr\)rNr��r�s r.�__str__zMarker.__str__Cs���d�m�m�,�,r-c�<�d|jj�d|�d�S)Nrhz('z')>)�	__class__r(r�s r.�__repr__zMarker.__repr__Fs"���4�>�>�*�*�+�2�d�V�3�7�7r-c�*�tt|��Sr\)�hashr3r�s r.�__hash__zMarker.__hash__Is���C��I��r-c�\�t|t�stSt|�t|�k(Sr\)r>r�NotImplementedr3)r��others  r.�__eq__z
Marker.__eq__Ls%���%��(�!�!��4�y�C��J�&�&r-Nc�>�tdt��}|dk(r$|jt�t���n
|dk(rd|d<|�6|j|�d|vr!td|d�}|rt	|�nd|d<t|jt|��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 *context* parameter specifies what
        context the markers are being evaluated for, which influences what markers
        are considered valid. Acceptable values are "metadata" (for core metadata;
        default), "lock_file", and "requirement" (i.e. all other situations).

        The environment is determined from the current Python process.
        �!dict[str, str | AbstractSet[str]]r)r r!r�r=z
str | None)r
r�update�	frozensetrr�r��_repair_python_full_version)r�r��context�current_environmentr=s     r.�evaluatezMarker.evaluateRs��� #�/�1D�1F�
���k�!��&�&� �{�i�k�
'�
��
�
"�+-���(��"��&�&�{�3��-�-��\�+>�w�+G�H��KP�/@��/G�VX�#�G�,� ��M�M�6�7J�K�
�	
r-)rYr3�return�None)r�r3)r��int)r��objectr��bool)Nr)r�z+Mapping[str, str | AbstractSet[str]] | Noner�rr�r�)	r(r)r*r�r�r�r�r�r�r,r-r.rr$sF��/�<-�8��'�DH�#-�%
�@�%
�!�%
�
�	%
r-rc�V�td|d�}|jd�r|�d�|d<|S)z�
    Work around platform.python_version() returning something that is not PEP 440
    compliant for non-tagged Python builds.
    r3r$�+�local)r
�endswith)�envr$s  r.r�r�zs=���u�c�*?�&@�A���#�#�C�(�(;�'<�E�%B��!�"��Jr-)rA�MarkerList | MarkerAtom | strr�r�)rHr
r�r
)T)rYzlist[str] | MarkerAtom | strrMzbool | Noner�r3)
rBr3rCrrD�str | AbstractSet[str]rqr3r�r�)rBr3rDr�rqr3r�z"tuple[str, str | AbstractSet[str]])r�r
r�r�r�r�)r�zsys._version_infor�r3)r�r)r�r�r�r�)7�
__future__r�operatorr�r�r��typingrrrrrr	r
�_parserrr
rrrrr��
_tokenizerr�
specifiersrr�utilsr�__all__r3r��Operatorrrwrn�
ValueErrorrrrrrFrJrN�eq�nerjr;ruryr�r�rrr�r,r-r.�<module>r�s���
#��	��
�R�R�R�@�@�2�)�3�$����S�%��[��%5� 5�6�7��=�>���@�A�� �"5�6�����J���*���z��E�)�E�P
�)�
�"�
� 3�@D��(��1<����:&�-�	!�
�+�+�
�+�+�
�+�+�
�+�+�	!�	#�
��	��"�	��)��03��'��*-�
�-�&G�-�	�-�B��$S
�S
�l
�	*�
�&�
r-