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__/pylock.cpython-312.pyc
�

���i	X����ddlmZddlZddlZddlZddlmZmZddlmZddl	m	Z	ddl
mZmZm
Z
mZmZddlmZdd	lmZdd
lmZmZddlmZerddlmZdd
lmZej:e�Zgd�Z ed�Z!ed�Z"Gd�de�Z#ede#��Z$ejJd�Z&d=d�Z'd>d�Z(d?d�Z)d@d�Z*dAd�Z+dBd�Z,								dCd�Z-										dDd�Z.										dEd�Z/										dFd�Z0								dGd �Z1								dHd!�Z2								dId"�Z3dJd#�Z4dKd$�Z5dLd%�Z6Gd&�d'e7�Z8Gd(�d)e8�Z9Gd*�d+e8�Z:ed,d-�.�Gd/�d0��Z;ed,d-�.�Gd1�d2��Z<ed,d-�.�Gd3�d4��Z=ed,d-�.�Gd5�d6��Z>ed,d-�.�Gd7�d8��Z?ed,d-�.�Gd9�d:��Z@ed,d-�.�Gd;�d<��ZAy)M�)�annotationsN)�Mapping�Sequence)�	dataclass)�datetime)�
TYPE_CHECKING�Any�Callable�Protocol�TypeVar�)�Marker)�SpecifierSet)�NormalizedName�is_normalized_name)�Version)�Path)�Self)
�Package�PackageArchive�PackageDirectory�PackageSdist�
PackageVcs�PackageWheel�Pylock�PylockUnsupportedVersionError�PylockValidationError�is_valid_pylock_path�_T�_T2c��eZdZedd��Zy)�_FromMappingProtocolc��y�N���cls�ds  ��/build/snapcraft-certbot-817459ae66b3942307a8b35b87e7f45e/parts/certbot/install/lib/python3.12/site-packages/packaging/pylock.py�
_from_dictz_FromMappingProtocol._from_dict/s��7:�N�r(�Mapping[str, Any]�returnr)�__name__�
__module__�__qualname__�classmethodr*r%r+r)r"r".s���:��:r+r"�_FromMappingProtocolT)�boundz^pylock\.([^.]+)\.toml$c�t�|jdk(xs(ttj|j��S)z4Check if the given path is a valid pylock file path.zpylock.toml)�name�bool�_PYLOCK_FILE_NAME_RE�match)�paths r)rr9s+���9�9�
�%�T��.B�.H�.H����.S�)T�Tr+c�&�|jdd�S)N�_�-)�replace)�keys r)�	_toml_keyr@>s���;�;�s�C� � r+c��t|tttf�rt	|�St|t
�r|dk(r|D�cgc]
}t	|���c}S|Scc}w)N�environments)�
isinstancerrr�strr)r?�value�vs   r)�_toml_valuerGBsM���%�'�6�<�8�9��5�z���%��"�s�n�'<� %�&�1��A��&�&��L��'s�Ac	�d�|D��cic]\}}|�t|�t||���c}}Scc}}wr$)r@rG)�datar?rEs   r)�_toml_dict_factoryrJJs>�����C����	�#���C��/�/����s�",c��|j|�x}�yt||�s1tdt|�j�d|j�d�|���|S)zBGet a value from the dictionary and verify it's the expected type.N�Unexpected type � (expected �)��context)�getrCr�typer/�r(�
expected_typer?rEs    r)�_getrURsc�����s����$���e�]�+�#��t�E�{�3�3�4�5�&�/�/�0��
3��
�	
�
�Lr+c�:�t|||�x}�t|��|S)zKGet a required value from the dictionary and verify it's the expected type.)rU�_PylockRequiredKeyErrorrSs    r)�
_get_requiredrX_s&���a���,�,��5�%�c�*�*��Lr+c�N�t|t|�x}�yt|ttf�r$tdt
|�j�d�|���t|�D]H\}}t||�r�tdt
|�j�d|j�d�|�d|�d����|S)	zMGet a list value from the dictionary and verify it's the expected items type.NrLz (expected Sequence)rOrMrN�[�])	rUrrCrD�bytesrrRr/�	enumerate)r(�expected_item_typer?rE�i�items      r)�
_get_sequencerafs����a��3�'�'��0���%�#�u��&�#��t�E�{�3�3�4�4H�I��
�	
��U�#����4��$� 2�3�'�"�4��:�#6�#6�"7�8�/�8�8�9��<��%�q���1�
��
���Lr+c�r�t|||�x}�y	||�S#t$r}t||��|�d}~wwxYw)z�Get a value from the dictionary, verify it's the expected type,
    and convert to the target type.

    This assumes the target_type constructor accepts the value.
    NrO)rU�	Exceptionr)r(rT�target_typer?rE�es      r)�_get_asrf|sJ���a���,�,��5��;��5�!�!���;�#�A�s�3��:��;�s��	6�1�6c�<�t||||�x}�t|��|S)zfGet a required value from the dict, verify it's the expected type,
    and convert to the target type.)rfrW)r(rTrdr?rEs     r)�_get_required_asrh�s*����M�;��<�<��E�%�c�*�*��Lr+c	���t|||�x}�yg}	|D]}||�}|j|��	|S#t$r"}t||�dt	|��d���|�d}~wwxYw)z>Get list value from dictionary and verify expected items type.NrZr[rO)ra�appendrcr�len)	r(r^�target_item_typer?rE�resultr`�
typed_itemres	         r)�_get_sequence_asro�s����q�"4�c�:�:��C��
�F�O��	&�D�)�$�/�J��M�M�*�%�	&�
�M���O�#�A�#��a��F��}�A�/F�G�Q�N��O�s� 7�	A"�A�A"c��t|t|�x}�y	|j|�S#t$r}t	||��|�d}~wwxYw)zIGet a dictionary value from the dictionary and convert it to a dataclass.NrO)rUrr*rcr)r(rdr?rEres     r)�_get_objectrq�sP���a��#�&�&��/��;��%�%�e�,�,���;�#�A�s�3��:��;�s�'�	A�>�Ac	���t|t|�x}�yg}	|D]$}|j|�}|j|��&	|S#t$r"}t||�dt
|��d���|�d}~wwxYw)zJGet a list value from the dictionary and convert its items to a dataclass.NrZr[rO)rarr*rjrcrrk)r(rlr?rErmr`rnres        r)�_get_sequence_of_objectsrs�s����q�'�3�/�/��8��*,�F�O��	&�D�)�4�4�T�:�J��M�M�*�%�	&�
�M���O�#�A�#��a��F��}�A�/F�G�Q�N��O�s�)A�	A/�
A*�*A/c�:�t|||�x}�t|��|S)zWGet a required list value from the dictionary and convert its items to a
    dataclass.)rsrW)r(rlr?rms    r)�!_get_required_sequence_of_objectsru�s)��
+�1�.>��D�D��M�%�c�*�*��Mr+c�L�t|�std|�d���t|�S)z+Validate that a string is a NormalizedName.zName z is not normalized)rrr)r6s r)�_validate_normalized_namerw�s*���d�#�#�e�D�8�3E�$F�G�G��$��r+c�$�|s|std��yy)Nzpath or url must be provided)r)r:�urls  r)�_validate_path_urlrz�s����#�$B�C�C��4r+c�v�|std��td�|j�D��std��|S)Nz"At least one hash must be providedc3�<K�|]}t|t����y�wr$)rCrD)�.0�hash_vals  r)�	<genexpr>z#_validate_hashes.<locals>.<genexpr>�s����I�X�z�(�C�(�I�s�zHash values must be strings)r�all�values)�hashess r)�_validate_hashesr��s6���#�$H�I�I��I�����I�I�#�$A�B�B��Mr+c�J�eZdZUdZdZded<ded<dd�					d
d�Zdd	�Zy)rz2Raised when when input data is not spec-compliant.N�
str | NonerPrD�messagerOc���t|t�rJ|jr%|r|�d|j��n|j|_n||_|j|_y||_t	|�|_y)N�.)rCrrPr�rD)�self�causerPs   r)�__init__zPylockValidationError.__init__�s]���e�2�3��}�}�4;�w�i�q�����0������ '��� �=�=�D�L�"�D�L��u�:�D�Lr+c�h�|jr|j�d|j��S|jS)Nz in )rPr��r�s r)�__str__zPylockValidationError.__str__s-���<�<��l�l�^�4����'7�8�8��|�|�r+)r�zstr | ExceptionrPr�r.�None)r.rD)r/r0r1�__doc__rP�__annotations__r�r�r%r+r)rr�s?��<��G�Z��
�L�#�	&��&��	&�

�&�$r+rc� ��eZdZd�fd�Z�xZS)rWc�(��t�|�d|��y)NzMissing required valuerO)�superr�)r�r?�	__class__s  �r)r�z _PylockRequiredKeyError.__init__s���
���1�3��?r+)r?rDr.r�)r/r0r1r��
__classcell__)r�s@r)rWrWs���@�@r+rWc��eZdZdZy)rz7Raised when encountering an unsupported `lock_version`.N)r/r0r1r�r%r+r)rrs��Ar+rTF)�frozen�initc��eZdZUded<dZded<dZded<dZded<ded<dZded	<ddddd
�													d
d�Ze	dd��Z
y)rrDrRNr�ryr:�requested_revision�	commit_id�subdirectory)ryr:r�r�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�y)NrRryr:r�r�r���object�__setattr__)r�rRryr:r�r�r�s       r)r�zPackageVcs.__init__sr��	���4���.����4���,����4���.����4�!5�7I�J����4��i�8����4���>r+c��|t|td�t|td�t|td�t|td�t|td�t|td���}t|j|j
�|S)NrRryr:zrequested-revisionz	commit-idr�)rRryr:r�r�r�)rXrDrUrzr:ry)r'r(�package_vcss   r)r*zPackageVcs._from_dict+sq����q�#�v�.��Q��U�#��a��f�%�#�A�s�,@�A�#�A�s�K�8��a��n�5�

��	�;�+�+�[�_�_�=��r+)rRrDryr�r:r�r�r�r�rDr�r�r.r�r,)r/r0r1r�ryr:r�r�r�r2r*r%r+r)rrs���

�I��C����D�*��%)��
�)��N�#�L�*�#���)-�#'�?��?��	?�
�?�'�
?��?�!�?�
�?�$�
��
r+rc�d�eZdZUded<dZded<dZded<ddd�							dd	�Zedd
��Zy)
rrDr:N�bool | None�editabler�r�)r�r�c��tj|d|�tj|d|�tj|d|�y)Nr:r�r�r�)r�r:r�r�s    r)r�zPackageDirectory.__init__?s:��	���4���.����4��X�6����4���>r+c	�r�|t|td�t|td�t|td���S)Nr:r�r�)r:r�r�)rXrDrUr7r&s  r)r*zPackageDirectory._from_dictKs3����q�#�v�.��!�T�:�.��a��n�5�
�	
r+)r:rDr�r�r�r�r.r�r,)	r/r0r1r�r�r�r�r2r*r%r+r)rr9sd��

�I� �H�k� �#�L�*�#�!%�#'�
?��
?��	
?�
!�
?�
�
?��
��
r+rc��eZdZUdZded<dZded<dZded<dZded<d	ed
<dZded<dddddd�													dd
�Z	e
dd��Zy)rNr�ryr:�
int | None�size�datetime | None�upload_time�Mapping[str, str]r�r�)ryr:r�r�r�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�y)Nryr:r�r�r�r�r�)r�ryr:r�r�r�r�s       r)r�zPackageArchive.__init__]sp��	���4���,����4���.����4���.����4���<����4��6�2����4���>r+c� �|t|td�t|td�t|td�t|td�t	|t
td�t|td���}t|j|j�|S)Nryr:r��upload-timer�r�)ryr:r�r�r�r�)
rUrD�intrrhrr�rzr:ry)r'r(�package_archives   r)r*zPackageArchive._from_dictosu����Q��U�#��a��f�%��a��f�%��Q��-�8�#�A�w�0@�(�K��a��n�5�

��	�?�/�/��1D�1D�E��r+)ryr�r:r�r�r�r�r�r�r�r�r�r.r�r,)r/r0r1ryr�r:r�r�r�r�r2r*r%r+r)rrTs����C����D�*���D�*��#'�K��'���#�L�*�#�
���'+�#'�?��?��	?�
�?�%�
?�"�?�!�?�
�?�$�
��
r+rc��eZdZUdZded<dZded<dZded<dZded<dZded	<d
ed<dddddd�													dd
�Z	e
dd��Zy)rNr�r6r�r�ryr:r�r�r�r��r6r�ryr:r�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�y�Nr6r�ryr:r�r�r��r�r6r�ryr:r�r�s       r)r�zPackageSdist.__init__��p��	���4���.����4���<����4���,����4���.����4���.����4��6�2r+c
� �|t|td�t|td�t|td�t|td�t|td�t	|t
td���}t|j|j�|S�Nr6r�ryr:r�r�)r6r�ryr:r�r��
rUrDrr�rhrr�rzr:ry)r'r(�
package_sdists   r)r*zPackageSdist._from_dict��u����a��f�%��Q��-�8��Q��U�#��a��f�%��a��f�%�#�A�w�0@�(�K�

�
�	�=�-�-�}�/@�/@�A��r+�r6r�r�r�ryr�r:r�r�r�r�r�r.r�r,�r/r0r1r6r�r�ryr:r�r�r2r*r%r+r)rr}����D�*��#'�K��'��C����D�*���D�*����
 �'+����3��3�%�	3�
�3��
3��3�"�3�
�3�$�
��
r+rc��eZdZUdZded<dZded<dZded<dZded<dZded	<d
ed<dddddd�													dd
�Z	e
dd��Zy)rNr�r6r�r�ryr:r�r�r�r�r�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�yr�r�r�s       r)r�zPackageWheel.__init__�r�r+c
� �|t|td�t|td�t|td�t|td�t|td�t	|t
td���}t|j|j�|Sr�r�)r'r(�
package_wheels   r)r*zPackageWheel._from_dict�r�r+r�r,r�r%r+r)rr�r�r+rc
�>�eZdZUded<dZded<dZded<dZded	<dZd
ed<dZded
<dZ	ded<dZ
ded<dZded<dZded<dZ
ded<dZd
ed<dZded<ddddddddddddd�																											dd�Zed d��Zed!d��Zy)"rrr6N�Version | None�version�
Marker | None�marker�SpecifierSet | None�requires_python�"Sequence[Mapping[str, Any]] | None�dependencies�PackageVcs | None�vcs�PackageDirectory | None�	directory�PackageArchive | None�archiver��index�PackageSdist | None�sdist�Sequence[PackageWheel] | None�wheels�attestation_identities�Mapping[str, Any] | None�tool)r�r�r�r�r�r�r�r�r�r�r�r�c
�Z�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d	|	�tj|d
|
�tj|d|�tj|d|�tj|d
|
�y)Nr6r�r�r�r�r�r�r�r�r�r�r�r�r�)r�r6r�r�r�r�r�r�r�r�r�r�r�r�s              r)r�zPackage.__init__�s���$	���4���.����4��G�4����4��6�2����4�!2�O�D����4���>����4���,����4��i�8����4��G�4����4��%�0����4��%�0����4��6�2����4�!9�;Q�R����4���.r+c��|t|ttd�t|ttd�t|tt
d�t
|td�t|ttd�t|td�t|td�t|td�t|td	�t|td
�t|t d�t
|td�t|td
���
}t#|j$�t'|j(xsg�z}t#|j*�t#|j,�zt#|j.�z}|dkDr|dkDrt1d��|dk(r|dk7rt1d��	t3|j4xsg�D]\}}t7|td��	|S#t8$r}t1|d�d���|�d}~wwxYw)Nr6r��requires-pythonr�r�r�r�r�r�r�r�zattestation-identitiesr�)
r6r�r�r�r�r�r�r�r�r�r�r�r�rzFNone of vcs, directory, archive must be set if sdist or wheels are setr
zRExactly one of vcs, directory, archive must be set if sdist and wheels are not set�kindzattestation-identities[r[rO)rhrDrwrfrrrarrrqrrrrUrrsrr7r�rkr�r�r�r�rr]r�rXrc)r'r(�package�
distributions�direct_urlsr_�attestation_identityres        r)r*zPackage._from_dict�s����!�!�S�*C�V�L��A�s�G�Y�7�#�A�s�L�:K�L�&�q�'�>�B��1�c�6�8�4��A�z�5�1�!�!�%5�{�C���>�9�=��q�#�w�'��a��w�7�+�A�|�X�F�#0��G�=U�#V��a��&�)�
���W�]�]�+�c�'�.�.�2F�B�.G�G�
�������W�%6�%6� 7�7�$�w���:O�O�	��1���q��'�X��
��A��+��"2�'�2��
�	�+4��.�.�4�"�,�
A�'��'��2�C��@�
A����	�	�'��4�Q�C�q�9���
��	�s�2F=�=	G�G�Gc�8�|jxs|jSr$)r�r�r�s r)�	is_directzPackage.is_direct(s���J�J�-�$�+�+�.�.r+)r6rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r.r�r,)r.r7)r/r0r1r�r�r�r�r�r�r�r�r�r�r�r�r�r�r2r*�propertyr�r%r+r)rr�sl��
��"�G�^�"� �F�M� �+/�O�(�/�7;�L�4�;�!�C�	�!�)-�I�&�-�%)�G�
"�)��E�:��!%�E��%�,0�F�)�0�AE��>�E�%)�D�
"�)�#'� $�/3�;?�!%�-1�)-� �%)�04�EI�)-�/��/� �	/�
�/�-�
/�9�/��/�+�/�'�/��/�#�/�.�/�!C�/�'�/� 
�!/�@�&��&�P�/��/r+rc��eZdZUdZded<dZded<dZded<dZd	ed
<dZded<dZ	ded
<ded<ded<dZ
ded<ddddddd�																			dd�Zedd��Z
edd��Zdd�Zdd�Zy)rz#A class representing a pylock file.r�lock_versionN�Sequence[Marker] | NonerBr�r��Sequence[NormalizedName] | None�extras�Sequence[str] | None�dependency_groups�default_groupsrD�
created_by�Sequence[Package]�packagesr�r�)rBr�r�r�r�r�c	��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d	|	�y)
Nr�rBr�r�r�r�r�r�r�r�)
r�r�rBr�r�r�r�r�r�r�s
          r)r�zPylock.__init__;s���	���4���>����4���>����4�!2�O�D����4��6�2����4�!4�6G�H����4�!1�>�B����4��z�:����4��X�6����4���.r+c�R�|t|ttd�t|ttd�t|tt
d�t
|td�t
|td�t|td�t|ttd�t|td�t|td	��
�	}td�|jcxkrtd�ksntd
|j�d���|jtd�kDr t j#d|j�|S)Nzlock-versionrBr�zdependency-groupszdefault-groupsz
created-byr�r�r�)	r�rBr�r�r�r�r�r�r��1�2zpylock version z is not supportedz1.0z(pylock minor version %s is not supported)rhrDrrorrwrarXrfrrurrUrr�r�_logger�warning)r'r(�pylocks   r)r*zPylock._from_dictSs����)�!�S�'�>�J�)�!�S�&�.�I�#�A�s�,E�x�P�+�A�s�4G�H�(��C�1A�B�$�Q��\�:�#�A�s�L�:K�L�6�q�'�:�N��a��&�)�

���s�|�v�2�2�A�W�S�\�A�/�!�&�"5�"5�!6�6G�H��
�������/��O�O�:�F�<O�<O�
��
r+c�$�|j|�S)z�Create and validate a Pylock instance from a TOML dictionary.

        Raises :class:`PylockValidationError` if the input data is not
        spec-compliant.
        )r*r&s  r)�	from_dictzPylock.from_dictjs���~�~�a� � r+c�8�tj|t��S)z1Convert the Pylock instance to a TOML dictionary.)�dict_factory)�dataclasses�asdictrJr�s r)�to_dictzPylock.to_dictss���!�!�$�5G�H�Hr+c�B�|j|j��y)zqValidate the Pylock instance against the specification.

        Raises :class:`PylockValidationError` otherwise.N)r�rr�s r)�validatezPylock.validatews��	
���t�|�|�~�&r+)r�rrBr�r�r�r�r�r�r�r�r�r�rDr�r�r�r�r.r�r,)r.r-)r.r�)r/r0r1r�r�rBr�r�r�r�r�r�r2r*r�rrr%r+r)rr-s��-���,0�L�)�0�+/�O�(�/�.2�F�+�2�.2��+�2�+/�N�(�/��O���%)�D�
"�)�15�/3�26�26�/3�*.�/��/�.�	/�
-�/�0�
/�0�/�-�/��/�$�/�'�/�
�/�0����,�!��!�I�'r+r)r:rr.r7)r?rDr.rD)r?rDrEr	r.r	)rIzlist[tuple[str, Any]]r.zdict[str, Any])r(r-rT�type[_T]r?rDr.z	_T | None)r(r-rTrr?rDr.r)r(r-r^rr?rDr.zSequence[_T] | None)
r(r-rTrrd�Callable[[_T], _T2]r?rDr.z
_T2 | None)
r(r-rTrrdrr?rDr.r )
r(r-r^rrlrr?rDr.zlist[_T2] | None)r(r-rd�type[_FromMappingProtocolT]r?rDr.z_FromMappingProtocolT | None)r(r-rlrr?rDr.z"list[_FromMappingProtocolT] | None)r(r-rlrr?rDr.zSequence[_FromMappingProtocolT])r6rDr.r)r:r�ryr�r.r�)r�r-r.r-)B�
__future__rr��logging�re�collections.abcrrrr�typingrr	r
rr�markersr�
specifiersr�utilsrrr�r�pathlibr�typing_extensionsr�	getLoggerr/r��__all__rr r"r3�compiler8rr@rGrJrUrXrarfrhrorqrsrurwrzr�rcrrWrrrrrrrrr%r+r)�<module>rs
��"���	�-�!�����$�5����&�
�'�
�
�H�
%����
�T�]��
�e�n��;�8�;�
 � 7�?S�T��"�r�z�z�"<�=��U�
!���
�����.6��=@����,;��;��;�%�;�

�	;�
�;�&
��
��
�%�
�

�	
�
	�
���� ��*��

�	�
��&	;��	;�'B�	;�IL�	;�!�	;�
��
�,G�
�NQ�
�'�
� ���,G��NQ��$�� �D�
��I��<@�3�@�
B�$9�B��$�U�#�%�%�$�%�P�$�U�#�
�
�$�
�4�$�U�#�%�%�$�%�P�$�U�#�%�%�$�%�P�$�U�#�%�%�$�%�P�$�U�#�Z/�Z/�$�Z/�z�$�U�#�M'�M'�$�M'r+