o
    Ñ­jb„  ã                   @  s  d dl mZ d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	m	Z	 d dl
mZmZmZmZmZmZ d dlmZ dd	lmZmZmZ dd
lmZ ddlmZmZ ddlmZmZmZm Z  ddl!m"Z" er‚d dlm#Z#m$Z$ d dl%m&Z& d dl'm(Z( ddlm)Z) e *e+¡Z,g d¢Z-d{dd„Z.edƒZ/edƒZ0G dd„ deƒZ1ede1d�Z2e 3d¡Z4d|d!d"„Z5d}d%d&„Z6d~d)d*„Z7dd.d/„Z8d€d5d6„Z9d�d7d8„Z:d‚d;d<„Z;dƒd@dA„Z<d„dBdC„Z=d…dFdG„Z>d†dJdK„Z?d‡dMdN„Z@dˆdPdQ„ZAd‰dTdU„ZBdŠdYdZ„ZCd‹d[d\„ZDdŒd]d^„ZEd�d`da„ZFG dbdc„ dceGƒZHG ddde„ deeHƒZIG dfdg„ dgeHƒZJG dhdi„ dieGƒZKedjdkdl�G dmdn„ dnƒƒZLedjdkdl�G dodp„ dpƒƒZMedjdkdl�G dqdr„ drƒƒZNedjdkdl�G dsdt„ dtƒƒZOedjdkdl�G dudv„ dvƒƒZPedjdkdl�G dwdx„ dxƒƒZQedjdkdl�G dydz„ dzƒƒZRdS )Žé    )Ú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_pathÚreturnú	list[str]c                   C  s   t S ©N)Ú__all__© r-   r-   úM/var/www/html/CropPilot/venv/lib/python3.10/site-packages/packaging/pylock.pyÚ__dir__6   ó   r/   Ú_TÚ_T2c                   @  s   e Zd Zeddd„ƒZdS )	Ú_FromMappingProtocolÚdúMapping[str, Any]r)   r   c                 C  s   d S r+   r-   ©Úclsr4   r-   r-   r.   Ú
_from_dict?   r0   z_FromMappingProtocol._from_dictN©r4   r5   r)   r   )Ú__name__Ú
__module__Ú__qualname__Úclassmethodr8   r-   r-   r-   r.   r3   >   s    r3   Ú_FromMappingProtocolT)Úboundz^pylock\.([^.]+)\.toml$Úpathr   Úboolc                 C  s   | j dkptt | j ¡ƒS )z4Check if the given path is a valid pylock file path.zpylock.toml)ÚnamerA   Ú_PYLOCK_FILE_NAME_REÚmatch©r@   r-   r-   r.   r(   I   s   r(   ÚkeyÚstrc                 C  s   |   dd¡S )NÚ_ú-)Úreplace)rF   r-   r-   r.   Ú	_toml_keyN   s   rK   Úvaluer   c                 C  s<   t |tttfƒrt|ƒS t |tƒr| dkrdd„ |D ƒS |S )NÚenvironmentsc                 S  s   g | ]}t |ƒ‘qS r-   )rG   )Ú.0Úvr-   r-   r.   Ú
<listcomp>V   s    z_toml_value.<locals>.<listcomp>)Ú
isinstancer   r   r   rG   r   )rF   rL   r-   r-   r.   Ú_toml_valueR   s
   rR   Údataúlist[tuple[str, Any]]údict[str, Any]c                 C  s   dd„ | D ƒS )Nc                 S  s(   i | ]\}}|d urt |ƒt||ƒ“qS r+   )rK   rR   )rN   rF   rL   r-   r-   r.   Ú
<dictcomp>[   s
    þz&_toml_dict_factory.<locals>.<dictcomp>r-   )rS   r-   r-   r.   Ú_toml_dict_factoryZ   s   þrW   r4   r5   Úexpected_typeútype[_T]ú	_T | Nonec                 C  sF   |   |¡ }du rdS t||ƒs!tdt|ƒj› d|j› d�|d�‚|S )zBGet a value from the dictionary and verify it's the expected type.NúUnexpected type ú (expected ú)©Úcontext)ÚgetrQ   r'   Útyper:   ©r4   rX   rF   rL   r-   r-   r.   Ú_getb   s   
ÿýrc   c                 C  ó    t | ||ƒ }du rt|ƒ‚|S )zKGet a required value from the dictionary and verify it's the expected type.N)rc   Ú_PylockRequiredKeyErrorrb   r-   r-   r.   Ú_get_requiredo   s   rf   Úexpected_item_typeúSequence[_T] | Nonec                 C  sŽ   t | t|ƒ }du rdS t|ttfƒr tdt|ƒj› d�|d�‚t|ƒD ] \}}t||ƒsDtdt|ƒj› d|j› d�|› d|› d�d�‚q$|S )	zMGet a list value from the dictionary and verify it's the expected items type.Nr[   z (expected Sequence)r^   r\   r]   ú[ú])	rc   r   rQ   rG   Úbytesr'   ra   r:   Ú	enumerate)r4   rg   rF   rL   ÚiÚitemr-   r-   r.   Ú_get_sequencev   s"   þ
ÿýÿro   Útarget_typeúCallable[[_T], _T2]ú
_T2 | Nonec              
   C  sJ   t | ||ƒ }du rdS z||ƒW S  ty$ } zt||d�|‚d}~ww )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^   )rc   Ú	Exceptionr'   )r4   rX   rp   rF   rL   Úer-   r-   r.   Ú_get_asŒ   s   
€ÿru   c                 C  s"   t | |||ƒ }du rt|ƒ‚|S )zfGet a required value from the dict, verify it's the expected type,
    and convert to the target type.N)ru   re   )r4   rX   rp   rF   rL   r-   r-   r.   Ú_get_required_asŸ   s   rv   Útarget_item_typeúlist[_T2] | Nonec           	   
   C  sv   t | ||ƒ }du rdS g }z|D ]}||ƒ}| |¡ qW |S  ty: } zt||› dt|ƒ› d�d�|‚d}~ww )z>Get list value from dictionary and verify expected items type.Nri   rj   r^   )ro   Úappendrs   r'   Úlen)	r4   rg   rw   rF   rL   Úresultrn   Ú
typed_itemrt   r-   r-   r.   Ú_get_sequence_as¬   s   þþ€ÿr}   útype[_FromMappingProtocolT]ú_FromMappingProtocolT | Nonec              
   C  sL   t | t|ƒ }du rdS z| |¡W S  ty% } zt||d�|‚d}~ww )zIGet a dictionary value from the dictionary and convert it to a dataclass.Nr^   )rc   r   r8   rs   r'   )r4   rp   rF   rL   rt   r-   r-   r.   Ú_get_object¿   s   €ÿr€   ú"list[_FromMappingProtocolT] | Nonec              
   C  sx   t | t|ƒ }du rdS g }z|D ]}| |¡}| |¡ qW |S  ty; } zt||› dt|ƒ› d�d�|‚d}~ww )zJGet a list value from the dictionary and convert its items to a dataclass.Nri   rj   r^   )ro   r   r8   ry   rs   r'   rz   )r4   rw   rF   rL   r{   rn   r|   rt   r-   r-   r.   Ú_get_sequence_of_objectsË   s   
þþ€ÿr‚   úSequence[_FromMappingProtocolT]c                 C  rd   )zWGet a required list value from the dictionary and convert its items to a
    dataclass.N)r‚   re   )r4   rw   rF   r{   r-   r-   r.   Ú!_get_required_sequence_of_objectsÛ   s   r„   rB   r   c                 C  s    t | ƒstd| ›d�ƒ‚t| ƒS )z+Validate that a string is a NormalizedName.zName z is not normalized)r   r'   r   )rB   r-   r-   r.   Ú_validate_normalized_nameå   s   r…   ú
str | NoneÚurlÚNonec                 C  s   | s|s
t dƒ‚d S d S )Nzpath or url must be provided)r'   )r@   r‡   r-   r-   r.   Ú_validate_path_urlì   s   ÿr‰   c                 C  s<   | sd S d| v r|   dd¡d S d| v r|   dd¡d S | S )Nú/r   éÿÿÿÿú\)ÚrsplitrE   r-   r-   r.   Ú
_path_nameñ   s   rŽ   c                 C  s"   | sd S t | ƒj}| dd¡d S )NrŠ   r   r‹   )r   r@   r�   )r‡   Úurl_pathr-   r-   r.   Ú	_url_nameþ   s   
r�   Úhashesc                 C  s.   | st dƒ‚tdd„ |  ¡ D ƒƒst dƒ‚| S )Nz"At least one hash must be providedc                 s  s   � | ]}t |tƒV  qd S r+   )rQ   rG   )rN   Úhash_valr-   r-   r.   Ú	<genexpr>  s   € z#_validate_hashes.<locals>.<genexpr>zHash values must be strings)r'   ÚallÚvalues)r‘   r-   r-   r.   Ú_validate_hashes  s
   r–   c                   @  s@   e Zd ZU dZdZded< ded< ddœddd„Zddd„ZdS )r'   z2Raised when when input data is not spec-compliant.Nr†   r_   rG   Úmessager^   Úcauseústr | Exceptionr)   rˆ   c                C  sT   t |tƒr |jr|r|› d|j› �n|j| _n|| _|j| _d S || _t|ƒ| _d S )NÚ.)rQ   r'   r_   r—   rG   )Úselfr˜   r_   r-   r-   r.   Ú__init__  s   
ÿzPylockValidationError.__init__c                 C  s   | j r| j› d| j ›�S | jS )Nz in )r_   r—   ©r›   r-   r-   r.   Ú__str__%  s   zPylockValidationError.__str__)r˜   r™   r_   r†   r)   rˆ   ©r)   rG   )r:   r;   r<   Ú__doc__r_   Ú__annotations__rœ   rž   r-   r-   r-   r.   r'     s   
 ür'   c                      s   e Zd Zd‡ fdd„Z‡  ZS )re   rF   rG   r)   rˆ   c                   s   t ƒ jd|d� d S )NzMissing required valuer^   )Úsuperrœ   )r›   rF   ©Ú	__class__r-   r.   rœ   ,  s   z _PylockRequiredKeyError.__init__)rF   rG   r)   rˆ   )r:   r;   r<   rœ   Ú__classcell__r-   r-   r£   r.   re   +  s    re   c                   @  ó   e Zd ZdZdS )r&   z7Raised when encountering an unsupported `lock_version`.N©r:   r;   r<   r    r-   r-   r-   r.   r&   0  ó    r&   c                   @  r¦   )ÚPylockSelectErrorz:Base exception for errors raised by :meth:`Pylock.select`.Nr§   r-   r-   r-   r.   r©   4  r¨   r©   TF)ÚfrozenÚinitc                   @  sr   e Zd ZU ded< dZded< dZded< dZded< ded< dZded	< ddddd
œddd„Ze	ddd„ƒZ
dS )r#   rG   ra   Nr†   r‡   r@   Úrequested_revisionÚ	commit_idÚsubdirectory)r‡   r@   r¬   r®   r)   rˆ   c                C  óX   t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ d S )Nra   r‡   r@   r¬   r­   r®   ©ÚobjectÚ__setattr__)r›   ra   r‡   r@   r¬   r­   r®   r-   r-   r.   rœ   A  ó   zPackageVcs.__init__r4   r5   r   c              
   C  sV   | t |tdƒt|tdƒt|tdƒt|tdƒt |tdƒt|tdƒd�}t|j|jƒ |S )Nra   r‡   r@   zrequested-revisionz	commit-idr®   )ra   r‡   r@   r¬   r­   r®   )rf   rG   rc   r‰   r@   r‡   )r7   r4   Úpackage_vcsr-   r-   r.   r8   S  s   





úzPackageVcs._from_dict)ra   rG   r‡   r†   r@   r†   r¬   r†   r­   rG   r®   r†   r)   rˆ   r9   )r:   r;   r<   r¡   r‡   r@   r¬   r®   rœ   r=   r8   r-   r-   r-   r.   r#   8  s   
 ør#   c                   @  sN   e Zd ZU ded< dZded< dZded< dddœddd„Zeddd„ƒZdS )r!   rG   r@   Núbool | NoneÚeditabler†   r®   )r¶   r®   r)   rˆ   c                C  s.   t  | d|¡ t  | d|¡ t  | d|¡ d S )Nr@   r¶   r®   r°   )r›   r@   r¶   r®   r-   r-   r.   rœ   g  s   zPackageDirectory.__init__r4   r5   r   c                 C  s&   | t |tdƒt|tdƒt|tdƒd�S )Nr@   r¶   r®   )r@   r¶   r®   )rf   rG   rc   rA   r6   r-   r-   r.   r8   s  s
   


ýzPackageDirectory._from_dict)r@   rG   r¶   rµ   r®   r†   r)   rˆ   r9   )	r:   r;   r<   r¡   r¶   r®   rœ   r=   r8   r-   r-   r-   r.   r!   a  s   
 ûr!   c                   @  sx   e Zd ZU dZded< dZded< dZded< dZded< d	ed
< dZded< ddddddœddd„Z	e
ddd„ƒZdS )r    Nr†   r‡   r@   ú
int | NoneÚsizeúdatetime | NoneÚupload_timeúMapping[str, str]r‘   r®   )r‡   r@   r¸   rº   r®   r)   rˆ   c                C  r¯   )Nr‡   r@   r¸   rº   r‘   r®   r°   )r›   r‡   r@   r¸   rº   r‘   r®   r-   r-   r.   rœ   …  r³   zPackageArchive.__init__r4   r5   r   c              
   C  sX   | t |tdƒt |tdƒt |tdƒt |tdƒt|ttdƒt |tdƒd�}t|j|j	ƒ |S )Nr‡   r@   r¸   úupload-timer‘   r®   )r‡   r@   r¸   rº   r‘   r®   )
rc   rG   Úintr   rv   r   r–   r‰   r@   r‡   )r7   r4   Úpackage_archiver-   r-   r.   r8   —  s   




úzPackageArchive._from_dict)r‡   r†   r@   r†   r¸   r·   rº   r¹   r‘   r»   r®   r†   r)   rˆ   r9   )r:   r;   r<   r‡   r¡   r@   r¸   rº   r®   rœ   r=   r8   r-   r-   r-   r.   r    |  s   
 ør    c                   @  ó†   e Zd ZU dZded< dZded< dZded< dZded< dZded	< d
ed< ddddddœddd„Z	e
ddd„ƒZeddd„ƒZdS )r"   Nr†   rB   r¹   rº   r‡   r@   r·   r¸   r»   r‘   ©rB   rº   r‡   r@   r¸   r)   rˆ   c                C  r¯   ©NrB   rº   r‡   r@   r¸   r‘   r°   ©r›   rB   rº   r‡   r@   r¸   r‘   r-   r-   r.   rœ   ®  r³   zPackageSdist.__init__r4   r5   r   c                 C  óX   | t |tdƒt |tdƒt |tdƒt |tdƒt |tdƒt|ttdƒd�}t|j|j	ƒ |S ©NrB   r¼   r‡   r@   r¸   r‘   )rB   rº   r‡   r@   r¸   r‘   ©
rc   rG   r   r½   rv   r   r–   r‰   r@   r‡   )r7   r4   Úpackage_sdistr-   r-   r.   r8   À  ó   




úzPackageSdist._from_dictrG   c                 C  ó*   | j pt| jƒpt| jƒ}|stdƒ‚|S )zGet the filename of the sdist.zCannot determine sdist filename©rB   rŽ   r@   r�   r‡   r'   ©r›   Úfilenamer-   r-   r.   rË   Í  ó   zPackageSdist.filename©rB   r†   rº   r¹   r‡   r†   r@   r†   r¸   r·   r‘   r»   r)   rˆ   r9   rŸ   ©r:   r;   r<   rB   r¡   rº   r‡   r@   r¸   rœ   r=   r8   ÚpropertyrË   r-   r-   r-   r.   r"   ¥  ó"   
 ùr"   c                   @  r¿   )r$   Nr†   rB   r¹   rº   r‡   r@   r·   r¸   r»   r‘   rÀ   r)   rˆ   c                C  r¯   rÁ   r°   rÂ   r-   r-   r.   rœ   ß  r³   zPackageWheel.__init__r4   r5   r   c                 C  rÃ   rÄ   rÅ   )r7   r4   Úpackage_wheelr-   r-   r.   r8   ñ  rÇ   zPackageWheel._from_dictrG   c                 C  rÈ   )zGet the filename of the wheel.zCannot determine wheel filenamerÉ   rÊ   r-   r-   r.   rË   þ  rÌ   zPackageWheel.filenamerÍ   r9   rŸ   rÎ   r-   r-   r-   r.   r$   Ö  rÐ   r$   c                   @  sè   e Zd ZU ded< dZded< dZded< dZded	< dZd
ed< dZded< dZ	ded< dZ
ded< dZded< dZded< dZded< dZd
ed< dZded< dddddddddddddœd(dd„Zed)d#d$„ƒZed*d&d'„ƒZdS )+r   r   rB   Nú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ç   r)   rˆ   c                C  sº   t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d	|	¡ t  | d
|
¡ t  | d|¡ t  | d|¡ t  | d|¡ d S )NrB   rÓ   rÕ   r×   rÙ   rÛ   rÝ   rß   rà   râ   rä   rå   rç   r°   )r›   rB   rÓ   rÕ   r×   rÙ   rÛ   rÝ   rß   rà   râ   rä   rå   rç   r-   r-   r.   rœ     s   zPackage.__init__r4   r5   r   c                 C  sÔ  | t |ttdƒt|ttdƒt|ttdƒt|tdƒt|ttdƒt	|t
dƒt	|tdƒt	|tdƒt|td	ƒt	|td
ƒt|tdƒt|tdƒt|tdƒd�}t|jƒt|jpRg ƒ }t|jƒt|jƒ t|jƒ }|dkrp|dkrptdƒ‚|dkr||dkr|tdƒ‚t|jp�g ƒD ]^\}}zt|jƒ\}}}	}	W n ty­ }
 ztd|j›�d|› d�d�|
‚d }
~
ww ||jkrÅtd|j›d|j›�d|› d�d�‚|jrá||jkrátd|j›dt|jƒ›�d|› d�d�‚qƒ|j�r:z
t|jjƒ\}}W n t�y	 }
 ztd|jj›�d
d�|
‚d }
~
ww ||jk�rtd|jj›d|j›�d
d�‚|j�r:||jk�r:td|jj›dt|jƒ›�d
d�‚zt|j �pAg ƒD ]\}}t!|tdƒ �qCW |S  t�yi }
 zt|
d|› d�d�|
‚d }
~
ww )NrB   rÓ   úrequires-pythonrÙ   rÕ   rÛ   rÝ   rß   rà   râ   rä   zattestation-identitiesrç   )rB   rÓ   r×   rÙ   rÕ   rÛ   rÝ   rß   rà   râ   rä   rå   rç   r   zFNone 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 setzInvalid wheel filename zwheels[rj   r^   zName in z% is not consistent with package name zVersion in z( is not consistent with package version zInvalid sdist filename Úkindzattestation-identities[)"rv   rG   r…   ru   r   r   ro   r   r   r€   r#   r!   r    rc   r"   r‚   r$   rA   râ   rz   rä   rÛ   rÝ   rß   r'   rl   r   rË   rs   rB   rÓ   r   rå   rf   )r7   r4   ÚpackageÚdistributionsÚdirect_urlsrm   ÚwheelrB   rÓ   rH   rt   Úattestation_identityr-   r-   r.   r8   7  s¼   








óÿÿÿ

þý€ÿ

ÿ
ý
ÿ
ý€þý€ÿÿýÿý
ÿýüÿþ€ÿzPackage._from_dictrA   c                 C  s   | j p| j S r+   )râ   rä   r�   r-   r-   r.   Ú	is_directˆ  ó   zPackage.is_direct)rB   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ˆ   r9   )r)   rA   )r:   r;   r<   r¡   rÓ   rÕ   r×   rÙ   rÛ   rÝ   rß   rà   râ   rä   rå   rç   rœ   r=   r8   rÏ   rï   r-   r-   r-   r.   r     s>   
 ñ Pr   c                   @  sÒ   e Zd ZU dZded< dZded< dZded< dZd	ed
< dZded< dZ	ded< ded< ded< dZ
ded< dddddddœd-dd„Zed.dd„ƒZed.dd„ƒZd/d d!„Zd0d"d#„Zddddd$œd1d+d,„ZdS )2r%   z#A class representing a pylock file.r   Úlock_versionNúSequence[Marker] | NonerM   rÖ   r×   úSequence[NormalizedName] | NoneÚextrasúSequence[str] | NoneÚdependency_groupsÚdefault_groupsrG   Ú
created_byúSequence[Package]Úpackagesræ   rç   )rM   r×   rô   rö   r÷   rç   r)   rˆ   c       	   
      C  s‚   t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d|¡ t  | d	|	¡ d S )
Nrñ   rM   r×   rô   rö   r÷   rø   rú   rç   r°   )
r›   rñ   rM   r×   rô   rö   r÷   rø   rú   rç   r-   r-   r.   rœ   ›  s   zPylock.__init__r4   r5   r   c                 C  s¼   | t |ttdƒt|ttdƒt|ttdƒt|tdƒt|tdƒt|tdƒt|tt	dƒt
|tdƒt|td	ƒd
�	}tdƒ|j  krDtdƒk sNn td|j› d�ƒ‚|jtdƒkr\t d|j¡ |S )Nzlock-versionrM   rô   zdependency-groupszdefault-groupsz
created-byrè   rú   rç   )	rñ   rM   rô   rö   r÷   rø   r×   rú   rç   Ú1Ú2zpylock version z is not supportedz1.0z(pylock minor version %s is not supported)rv   rG   r   r}   r   r…   ro   rf   ru   r   r„   r   rc   r   rñ   r&   Ú_loggerÚwarning)r7   r4   Úpylockr-   r-   r.   r8   ³  s(   




÷ ÿÿzPylock._from_dictc                C  s
   |   |¡S )z¦Create and validate a Pylock instance from a TOML dictionary.

        Raises :class:`PylockValidationError` if the input data is not
        spec-compliant.
        )r8   r6   r-   r-   r.   Ú	from_dictÊ  s   
zPylock.from_dictc                 C  s   t j| td�S )z1Convert the Pylock instance to a TOML dictionary.)Údict_factory)ÚdataclassesÚasdictrW   r�   r-   r-   r.   Úto_dictÓ  rð   zPylock.to_dictc                 C  s   |   |  ¡ ¡ dS )zqValidate the Pylock instance against the specification.

        Raises :class:`PylockValidationError` otherwise.N)r   r  r�   r-   r-   r.   Úvalidate×  s   zPylock.validate)ÚenvironmentÚtagsrô   rö   r  úEnvironment | Noner  úSequence[Tag] | NoneúCollection[str] | NoneúfIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]]c                c  sH  � t |ptƒ ƒ}tdt|pi t|pg ƒt|du r| jpg n|ƒd�ƒ}|r)|d ntƒ d }| jrD| j |¡sDt	d|›dt
| jƒ›�ƒ‚| jr_| jD ]}|jtd|pSi ƒdd	�rZ nqJt	d
ƒ‚i }	t| jƒD ]N\}
}|jrv|jj|dd	�svqf|jr”|j |¡s”t	d|›dt
|jƒ›d|j›d|
› d�	ƒ‚|j|	v r­t	d|j›d|
› d|	|j d › d�ƒ‚|
|f|	|j< qf|	 ¡ D ]h\}
}|jdurÉ||jfV  q¹|jdurÕ||jfV  q¹|jdurá||jfV  q¹|j�rt|dd„ |jD ƒƒdƒ}|rú||fV  q¹|jdu�r||jfV  q¹t	d|j›d|
› d�ƒ‚|jdu�r ||jfV  q¹t‚dS )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`).
        zdict[str, str | frozenset[str]]N)rô   rö   Úpython_full_versionzpython_full_version zI in provided environment does not satisfy the Python version requirement zdict[str, str]Úrequirementr^   zXProvided environment does not satisfy any of the environments specified in the lock fileÚ	lock_filez for package z at packages[rj   z Multiple packages with the name z are selected at packages[z] and packages[r   c                 s  s"   � | ]}|t |jƒd  fV  qdS )r‹   N)r   rË   )rN   rí   r-   r-   r.   r“   p  s
   € ÿ
ÿz Pylock.select.<locals>.<genexpr>z6No wheel found matching the provided tags for package z'], and no sdist available as a fallback)r   r   r   ÚdictÚ	frozensetr÷   r   r×   Úcontainsr©   rG   rM   Úevaluaterl   rú   rÕ   rB   r•   rÛ   rÝ   rß   rä   Únextrâ   ÚNotImplementedError)r›   r  r  rô   rö   Úcompatible_tags_selectorÚenvÚenv_python_full_versionÚ
env_markerÚselected_packages_by_nameÚpackage_indexrê   Ú
best_wheelr-   r-   r.   ÚselectÝ  s¶   € 
ÿ€ýýþ
ÿýÿþÿ	
ÿýÿÿþýýÿ
	
ÿþÿ


þûÿþÿ	ÓzPylock.select)rñ   r   rM   rò   r×   rÖ   rô   ró   rö   rõ   r÷   rõ   rø   rG   rú   rù   rç   ræ   r)   rˆ   r9   )r)   r5   )r)   rˆ   )
r  r  r  r	  rô   r
  rö   r
  r)   r  )r:   r;   r<   r    r¡   rM   r×   rô   rö   r÷   rç   rœ   r=   r8   r   r  r  r  r-   r-   r-   r.   r%   �  s:   
 õ

	úr%   )r)   r*   )r@   r   r)   rA   )rF   rG   r)   rG   )rF   rG   rL   r   r)   r   )rS   rT   r)   rU   )r4   r5   rX   rY   rF   rG   r)   rZ   )r4   r5   rX   rY   rF   rG   r)   r1   )r4   r5   rg   rY   rF   rG   r)   rh   )
r4   r5   rX   rY   rp   rq   rF   rG   r)   rr   )
r4   r5   rX   rY   rp   rq   rF   rG   r)   r2   )
r4   r5   rg   rY   rw   rq   rF   rG   r)   rx   )r4   r5   rp   r~   rF   rG   r)   r   )r4   r5   rw   r~   rF   rG   r)   r�   )r4   r5   rw   r~   rF   rG   r)   rƒ   )rB   rG   r)   r   )r@   r†   r‡   r†   r)   rˆ   )r@   r†   r)   r†   )r‡   r†   r)   r†   )r‘   r5   r)   r5   )SÚ
__future__r   r  ÚloggingÚreÚcollections.abcr   r   r   r   Útypingr   r   r	   r
   r   r   Úurllib.parser   Úmarkersr   r   r   Ú
specifiersr   r  r   r   Úutilsr   r   r   r   rÓ   r   r   r   Úpathlibr   Útyping_extensionsr   r   Ú	getLoggerr:   rý   r,   r/   r1   r2   r3   r>   ÚcompilerC   r(   rK   rR   rW   rc   rf   ro   ru   rv   r}   r€   r‚   r„   r…   r‰   rŽ   r�   r–   rs   r'   re   r&   r©   r#   r!   r    r"   r$   r   r%   r-   r-   r-   r.   Ú<module>   s€     























(

(
0
0 
