Your IP : 216.73.217.13


Current Path : /snap/certbot/current/lib/python3.12/site-packages/packaging/__pycache__/
Upload File :
Current File : //snap/certbot/current/lib/python3.12/site-packages/packaging/__pycache__/pylock.cpython-312.pyc

�

�jb���P�ddlmZddlZddlZddlZddlmZmZddlmZddl	m	Z	ddl
mZmZm
Z
mZmZmZddlmZdd	lmZmZmZdd
lmZddlmZmZddlmZmZmZm Z dd
l!m"Z"erddlm#Z#m$Z$ddl%m&Z&ddl'm(Z(ddlm)Z)ejTe+�Z,gd�Z-dFd�Z.ed�Z/ed�Z0Gd�de�Z1ede1��Z2ejfd�Z4dGd�Z5dHd�Z6dId�Z7dJd�Z8dKd�Z9dLd �Z:								dMd!�Z;										dNd"�Z<										dOd#�Z=										dPd$�Z>								dQd%�Z?								dRd&�Z@								dSd'�ZAdTd(�ZBdUd)�ZCdVd*�ZDdWd+�ZEdXd,�ZFGd-�d.eG�ZHGd/�d0eH�ZIGd1�d2eH�ZJGd3�d4eG�ZKed5d6�7�Gd8�d9��ZLed5d6�7�Gd:�d;��ZMed5d6�7�Gd<�d=��ZNed5d6�7�Gd>�d?��ZOed5d6�7�Gd@�dA��ZPed5d6�7�GdB�dC��ZQed5d6�7�GdD�dE��ZRy)Y�)�annotationsN)�Mapping�Sequence)�	dataclass)�datetime)�
TYPE_CHECKING�Any�Callable�Protocol�TypeVar�cast)�urlparse�)�Environment�Marker�default_environment)�SpecifierSet)�create_compatible_tags_selector�sys_tags)�NormalizedName�is_normalized_name�parse_sdist_filename�parse_wheel_filename)�Version)�
Collection�Iterator)�Path)�Self)�Tag)
�Package�PackageArchive�PackageDirectory�PackageSdist�
PackageVcs�PackageWheel�Pylock�PylockUnsupportedVersionError�PylockValidationError�is_valid_pylock_pathc��tS�N)�__all__����/build/snapcraft-certbot-54d6d23c1eba5f776fc280588daee8b3/parts/certbot/install/lib/python3.12/site-packages/packaging/pylock.py�__dir__r06s���Nr.�_T�_T2c��eZdZedd��Zy)�_FromMappingProtocolc��yr+r-��cls�ds  r/�
_from_dictz_FromMappingProtocol._from_dict?s��7:r.N�r8�Mapping[str, Any]�returnr)�__name__�
__module__�__qualname__�classmethodr9r-r.r/r4r4>s���:��:r.r4�_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/r)r)Is+���9�9�
�%�T��.B�.H�.H����.S�)T�Tr.c�&�|jdd�S)N�_�-)�replace)�keys r/�	_toml_keyrONs���;�;�s�C� � r.c��t|tttf�rt	|�St|t
�r|dk(r|D�cgc]
}t	|���c}S|Scc}w)N�environments)�
isinstancerrr�strr)rN�value�vs   r/�_toml_valuerVRsM���%�'�6�<�8�9��5�z���%��"�s�n�'<� %�&�1��A��&�&��L��'s�Ac	�d�|D��cic]\}}|�t|�t||���c}}Scc}}wr+)rOrV)�datarNrTs   r/�_toml_dict_factoryrYZs>�����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)�getrRr(�typer=�r8�
expected_typerNrTs    r/�_getrdbsc�����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.)rd�_PylockRequiredKeyErrorrbs    r/�
_get_requiredrgos&���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.Nr[z (expected Sequence)r^r\r]�[�])	rdrrRrS�bytesr(rar=�	enumerate)r8�expected_item_typerNrT�i�items      r/�
_get_sequencerpvs����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.
    Nr^)rd�	Exceptionr()r8rc�target_typerNrT�es      r/�_get_asru�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.)rurf)r8rcrsrNrTs     r/�_get_required_asrw�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.Nrirjr^)rp�appendrrr(�len)	r8rm�target_item_typerNrT�resultro�
typed_itemrts	         r/�_get_sequence_asr~�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.Nr^)rdrr9rrr()r8rsrNrTrts     r/�_get_objectr��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.Nrirjr^)rprr9ryrrr(rz)r8r{rNrTr|ror}rts        r/�_get_sequence_of_objectsr��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.)r�rf)r8r{rNr|s    r/�!_get_required_sequence_of_objectsr��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)rr(r)rDs r/�_validate_normalized_namer��s*���d�#�#�e�D�8�3E�$F�G�G��$��r.c�$�|s|std��yy)Nzpath or url must be provided)r()rI�urls  r/�_validate_path_urlr��s����#�$B�C�C��4r.c�p�|syd|vr|jdd�dSd|vr|jdd�dS|S)N�/r����\)�rsplitrHs r/�
_path_namer��sI�����d�{��{�{�3��"�2�&�&�	
����{�{�4��#�B�'�'��r.c�\�|syt|�j}|jdd�dS)Nr�rr�)rrIr�)r��url_paths  r/�	_url_namer��s-������}�!�!�H��?�?�3��"�2�&�&r.c�v�|std��td�|j�D��std��|S)Nz"At least one hash must be providedc3�<K�|]}t|t����y�wr+)rRrS)�.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)r(z2Raised when when input data is not spec-compliant.N�
str | Noner_rS�messager^c���t|t�rJ|jr%|r|�d|j��n|j|_n||_|j|_y||_t	|�|_y)N�.)rRr(r_r�rS)�self�causer_s   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 )r_r��r�s r/�__str__zPylockValidationError.__str__%s-���<�<��l�l�^�4����'7�8�8��|�|�r.)r�zstr | Exceptionr_r�r<�None�r<rS)r=r>r?�__doc__r_�__annotations__r�r�r-r.r/r(r(
s?��<��G�Z��
�L�#�	&��&��	&�

�&�$r.r(c� ��eZdZd�fd�Z�xZS)rfc�(��t�|�d|��y)NzMissing required valuer^)�superr�)r�rN�	__class__s  �r/r�z _PylockRequiredKeyError.__init__,s���
���1�3��?r.)rNrSr<r�)r=r>r?r��
__classcell__)r�s@r/rfrf+s���@�@r.rfc��eZdZdZy)r'z7Raised when encountering an unsupported `lock_version`.N�r=r>r?r�r-r.r/r'r'0s��Ar.r'c��eZdZdZy)�PylockSelectErrorz:Base exception for errors raised by :meth:`Pylock.select`.Nr�r-r.r/r�r�4s��Dr.r�TF)�frozen�initc��eZdZUded<dZded<dZded<dZded<ded<dZded	<ddddd
�													d
d�Ze	dd��Z
y)r$rSraNr�r�rI�requested_revision�	commit_id�subdirectory)r�rIr�r�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�y)Nrar�rIr�r�r���object�__setattr__)r�rar�rIr�r�r�s       r/r�zPackageVcs.__init__Asr��	���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)Nrar�rIzrequested-revisionz	commit-idr�)rar�rIr�r�r�)rgrSrdr�rIr�)r7r8�package_vcss   r/r9zPackageVcs._from_dictSsq����q�#�v�.��Q��U�#��a��f�%�#�A�s�,@�A�#�A�s�K�8��a��n�5�

��	�;�+�+�[�_�_�=��r.)rarSr�r�rIr�r�r�r�rSr�r�r<r�r:)r=r>r?r�r�rIr�r�r�r@r9r-r.r/r$r$8s���

�I��C����D�*��%)��
�)��N�#�L�*�#���)-�#'�?��?��	?�
�?�'�
?��?�!�?�
�?�$�
��
r.r$c�d�eZdZUded<dZded<dZded<ddd�							dd	�Zedd
��Zy)
r"rSrIN�bool | None�editabler�r�)r�r�c��tj|d|�tj|d|�tj|d|�y)NrIr�r�r�)r�rIr�r�s    r/r�zPackageDirectory.__init__gs:��	���4���.����4��X�6����4���>r.c	�r�|t|td�t|td�t|td���S)NrIr�r�)rIr�r�)rgrSrdrEr6s  r/r9zPackageDirectory._from_dictss3����q�#�v�.��!�T�:�.��a��n�5�
�	
r.)rIrSr�r�r�r�r<r�r:)	r=r>r?r�r�r�r�r@r9r-r.r/r"r"asd��

�I� �H�k� �#�L�*�#�!%�#'�
?��
?��	
?�
!�
?�
�
?��
��
r.r"c��eZdZUdZded<dZded<dZded<dZded<d	ed
<dZded<dddddd�													dd
�Z	e
dd��Zy)r!Nr�r�rI�
int | None�size�datetime | None�upload_time�Mapping[str, str]r�r�)r�rIr�r�r�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�y)Nr�rIr�r�r�r�r�)r�r�rIr�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)Nr�rIr��upload-timer�r�)r�rIr�r�r�r�)
rdrS�intrrwrr�r�rIr�)r7r8�package_archives   r/r9zPackageArchive._from_dict�su����Q��U�#��a��f�%��a��f�%��Q��-�8�#�A�w�0@�(�K��a��n�5�

��	�?�/�/��1D�1D�E��r.)r�r�rIr�r�r�r�r�r�r�r�r�r<r�r:)r=r>r?r�r�rIr�r�r�r�r@r9r-r.r/r!r!|s����C����D�*���D�*��#'�K��'���#�L�*�#�
���'+�#'�?��?��	?�
�?�%�
?�"�?�!�?�
�?�$�
��
r.r!c��eZdZUdZded<dZded<dZded<dZded<dZded	<d
ed<dddddd�													dd
�Z	e
dd��Zedd��Z
y)r#Nr�rDr�r�r�rIr�r�r�r��rDr�r�rIr�c��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�y�NrDr�r�rIr�r�r��r�rDr�r�rIr�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�NrDr�r�rIr�r�)rDr�r�rIr�r��
rdrSrr�rwrr�r�rIr�)r7r8�
package_sdists   r/r9zPackageSdist._from_dict��u����a��f�%��Q��-�8��Q��U�#��a��f�%��a��f�%�#�A�w�0@�(�K�

�
�	�=�-�-�}�/@�/@�A��r.c��|jxs,t|j�xst|j�}|std��|S)zGet the filename of the sdist.zCannot determine sdist filename�rDr�rIr�r�r(�r��filenames  r/r�zPackageSdist.filename��=���9�9�L�
�4�9�9� 5�L��4�8�8�9L���'�(I�J�J��r.�rDr�r�r�r�r�rIr�r�r�r�r�r<r�r:r��r=r>r?rDr�r�r�rIr�r�r@r9�propertyr�r-r.r/r#r#�����D�*��#'�K��'��C����D�*���D�*����
 �'+����3��3�%�	3�
�3��
3��3�"�3�
�3�$�
��
����r.r#c��eZdZUdZded<dZded<dZded<dZded<dZded	<d
ed<dddddd�													dd
�Z	e
dd��Zedd��Z
y)r%Nr�rDr�r�r�rIr�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�)r7r8�
package_wheels   r/r9zPackageWheel._from_dict�r�r.c��|jxs,t|j�xst|j�}|std��|S)zGet the filename of the wheel.zCannot determine wheel filenamer�r�s  r/r�zPackageWheel.filename�r�r.r�r:r�r�r-r.r/r%r%�r�r.r%c
�>�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)"r rrDN�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)NrDr�r�r�r�r�r�r�r�r�r�r�r�r�)r�rDr�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|j(xsg�D]�\}}	t5|j6�\}}}	}	||j:k7r+t1d|j6�d|j:��d|�d����|j<s�h||j<k7s�xt1d|j6�dt|j<���d|�d����|j$r�	t?|j$j6�\}}||j:k7r1t1d|j$j6�d|j:��d
���|j<rI||j<k7r:t1d|j$j6�dt|j<���d
���	t3|j@xsg�D]\}}tC|td��	|S#t8$r$}
t1d|j6��d|�d���|
�d}
~
wwxYw#t8$r*}
t1d|j$j6��d
��|
�d}
~
wwxYw#t8$r}
t1|
d�d���|
�d}
~
wwxYw)NrDr��requires-pythonr�r�r�r�r�r�r�r�zattestation-identitiesr�)
rDr�r�r�r�r�r�r�r�r�r�r�r�rzFNone of vcs, directory, archive must be set if sdist or wheels are setrzRExactly one of vcs, directory, archive must be set if sdist and wheels are not setzInvalid wheel filename zwheels[rjr^zName in z% is not consistent with package name zVersion in z( is not consistent with package version zInvalid sdist filename �kindzattestation-identities[)"rwrSr�rurrrprrr�r$r"r!rdr#r�r%rEr�rzr�r�r�r�r(rlrr�rrrDr�rr�rg)r7r8�package�
distributions�direct_urlsrn�wheelrDr�rKrt�attestation_identitys            r/r9zPackage._from_dict7s����!�!�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��
�"�'�.�.�"6�B�7�	�H�A�u�
�(<�U�^�^�(L�%��w��1��w�|�|�#�+��u�~�~�0�1$�$+�L�L�#3�5�%�a�S��N���
���7�g�o�o�#=�+�!�%�.�.�!3�4'�'*�7�?�?�';�&>�@�%�a�S��N���	�(�=�=�
� 4�W�]�]�5K�5K� L�
��g��w�|�|�#�+��w�}�}�5�5�8�9$�$+�L�L�#3�5�#���
���7�g�o�o�#=�+�!�'�-�-�"8�"8�!;�<'�'*�7�?�?�';�&>�@�#���
	�+4��.�.�4�"�,�
A�'��'��2�C��@�
A����]�
�+�-�e�n�n�-?�@�%�a�S��N�����
��(�
�+�-�g�m�m�.D�.D�-G�H�#�����
��,�	�'��4�Q�C�q�9���
��	�sH�'M�"M7�2N-�	M4�M/�/M4�7	N*�%N%�%N*�-	O
�6O�O
c�8�|jxs|jSr+)r�r�r�s r/�	is_directzPackage.is_direct�s���J�J�-�$�+�+�.�.r.)rDrr�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<rE)r=r>r?r�r�r�r�r�r�r�r�r�r�r�r�r�r�r@r9r�r
r-r.r/r r sn��
��"�G�^�"� �F�M� �+/�O�(�/�7;�L�4�;�!�C�	�!�)-�I�&�-�%)�G�
"�)��E�:��!%�E��%�,0�F�)�0�AE��>�E�%)�D�
"�)�#'� $�/3�;?�!%�-1�)-� �%)�04�EI�)-�/��/� �	/�
�/�-�
/�9�/��/�+�/�'�/��/�#�/�.�/�!C�/�'�/� 
�!/�@�N��N�`�/��/r.r c��eZdZUdZded<dZded<dZded<dZd	ed
<dZded<dZ	ded
<ded<ded<dZ
ded<ddddddd�																			dd�Zedd��Z
edd��Zdd�Zdd�Zddddd�									d d�Zy)!r&z#A class representing a pylock file.r�lock_versionN�Sequence[Marker] | NonerQr�r��Sequence[NormalizedName] | None�extras�Sequence[str] | None�dependency_groups�default_groupsrS�
created_by�Sequence[Package]�packagesr�r�)rQr�rrrr�c	��tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d|�tj|d	|	�y)
NrrQr�rrrrrr�r�)
r�rrQr�rrrrrr�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-versionrQrzdependency-groupszdefault-groupsz
created-byrrr�)	rrQrrrrr�rr��1�2zpylock version z is not supportedz1.0z(pylock minor version %s is not supported)rwrSrr~rr�rprgrurr�r rdrrr'�_logger�warning)r7r8�pylocks   r/r9zPylock._from_dict�s����)�!�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.
        )r9r6s  r/�	from_dictzPylock.from_dict�s���~�~�a� � r.c�8�tj|t��S)z1Convert the Pylock instance to a TOML dictionary.)�dict_factory)�dataclasses�asdictrYr�s r/�to_dictzPylock.to_dict�s���!�!�$�5G�H�Hr.c�B�|j|j��y)zqValidate the Pylock instance against the specification.

        Raises :class:`PylockValidationError` otherwise.N)rr#r�s r/�validatezPylock.validate�s��	
���t�|�|�~�&r.)�environment�tagsrrc#�K�t|xs
t��}tdt|xsit	|xsg�t	|�|j
xsgn|����}|r|dnt
�d}|jr?|jj|�s$td|�dt|j�����|jr?|jD]%}|jtd|xsi�d�	�s�%ntd
��i}	t|j�D]�\}
}|jr|jj|d�	�s�0|jrP|jj|�s5td|�dt|j��d|j �d
|
�d�	��|j |	vr/td|j �d|
�d|	|j d�d���|
|f|	|j <��|	j#�D]�\}
}|j$�||j$f���#|j&�||j&f���@|j(�||j(f���]|j*ret-|d�|j*D��d�}|r||f����|j.�||j.f����td|j �d
|
�d���|j.�||j.f����t0�y�w)a�Select what to install from the lock file.

        The *environment* and *tags* parameters represent the environment being
        selected for. If unspecified, ``packaging.markers.default_environment()`` and
        ``packaging.tags.sys_tags()`` are used.

        The *extras* parameter represents the extras to install.

        The *dependency_groups* parameter represents the groups to install. If
        unspecified, the default groups are used.

        This method must be used on valid Pylock instances (i.e. one obtained
        from :meth:`Pylock.from_dict` or if constructed manually, after calling
        :meth:`Pylock.validate`).
        zdict[str, str | frozenset[str]]N)rr�python_full_versionzpython_full_version zI in provided environment does not satisfy the Python version requirement zdict[str, str]�requirementr^zXProvided environment does not satisfy any of the environments specified in the lock file�	lock_filez
 for package z
 at packages[rjz Multiple packages with the name z are selected at packages[z] and packages[rc3�PK�|]}|t|j�df��� y�w)r�N)rr�)r�rs  r/r�z Pylock.select.<locals>.<genexpr>ps,����-�!�� 4�U�^�^� D�R� H�I�-�s�$&z6No wheel found matching the provided tags for package z'], and no sdist available as a fallback)rrr
�dict�	frozensetrrr��containsr�rSrQ�evaluaterlrr�rDr�r�r�r�r��nextr��NotImplementedError)
r�r&r'rr�compatible_tags_selector�env�env_python_full_version�
env_marker�selected_packages_by_name�
package_indexr�
best_wheels
             r/�selectz
Pylock.select�s�����@$C�4�CU�8�:�#V� ��-���!�r� ���2�.�"+�(�0��(�(�.�B�*�#�
�
���
�-�.�$�&�'<�=�	 �����(<�(<�(E�(E�#�)
�$�&�'>�&A�B�"�4�#7�#7�8�;�=��
����"�/�/�	
�
��&�&��)�;�+<�"�=�}�'���		
�(�>���EG�!�&/��
�
�&>�!	O�"�M�7��~�~�g�n�n�&=�&=�c�;�&=�&W���&�&�w�/F�/F�/O�/O�'�0�(�*�+B�*E�F#�#&�w�'>�'>�#?�"B�-��|�|�&�m�M�?�!�E����|�|�8�8�'�6�w�|�|�6F�G,�,9�?�; � 9�'�,�,� G�� J�K�1�N���8E�g�6N�%�g�l�l�3�C!	O�H'@�&F�&F�&H�-	*�"�M�7��{�{�&��w�{�{�*�*��"�"�.��w�0�0�0�0����,��w���.�.����
"�,�-�%,�^�^�-����
��!�:�-�-��]�]�.�!�7�=�=�0�0�+�'�'.�|�|�&6�7'�'4�o�6?�@������*��w�}�}�,�,�*�)�[-	*�s
�C7K>�:HK>)rrrQr
r�r�rrrrrrrrSrrr�r�r<r�r:)r<r;)r<r�)
r&zEnvironment | Noner'zSequence[Tag] | Noner�Collection[str] | Nonerr;r<zfIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]])r=r>r?r�r�rQr�rrrr�r�r@r9rr#r%r:r-r.r/r&r&�sV��-���,0�L�)�0�+/�O�(�/�.2�F�+�2�.2��+�2�+/�N�(�/��O���%)�D�
"�)�15�/3�26�26�/3�*.�/��/�.�	/�
-�/�0�
/�0�/�-�/��/�$�/�'�/�
�/�0����,�!��!�I�'�+/�%)�)-�48�
l*�(�l*�#�	l*�
'�l*�2�
l*�	
�l*r.r&)r<z	list[str])rIrr<rE)rNrSr<rS)rNrSrTr	r<r	)rXzlist[tuple[str, Any]]r<zdict[str, Any])r8r;rc�type[_T]rNrSr<z	_T | None)r8r;rcr<rNrSr<r1)r8r;rmr<rNrSr<zSequence[_T] | None)
r8r;rcr<rs�Callable[[_T], _T2]rNrSr<z
_T2 | None)
r8r;rcr<rsr=rNrSr<r2)
r8r;rmr<r{r=rNrSr<zlist[_T2] | None)r8r;rs�type[_FromMappingProtocolT]rNrSr<z_FromMappingProtocolT | None)r8r;r{r>rNrSr<z"list[_FromMappingProtocolT] | None)r8r;r{r>rNrSr<zSequence[_FromMappingProtocolT])rDrSr<r)rIr�r�r�r<r�)rIr�r<r�)r�r�r<r�)r�r;r<r;)S�
__future__rr!�logging�re�collections.abcrrrr�typingrr	r
rrr
�urllib.parser�markersrrr�
specifiersrr'rr�utilsrrrrr�rrr�pathlibr�typing_extensionsrr�	getLoggerr=rr,r0r1r2r4rA�compilerFr)rOrVrYrdrgrprurwr~r�r�r�r�r�r�r�r�rrr(rfr'r�r$r"r!r#r%r r&r-r.r/�<module>rLs?��"���	�-�!����"�=�=�$�;�����4��&��
�'�
�
�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�E�	�E��$�U�#�%�%�$�%�P�$�U�#�
�
�$�
�4�$�U�#�%�%�$�%�P�$�U�#�-�-�$�-�`�$�U�#�-�-�$�-�`�$�U�#�B/�B/�$�B/�J�$�U�#�{*�{*�$�{*r.