a
    $lJh4                     @   sX  d dl Z d dl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 d dlmZmZmZ d dlmZ d d	lmZ d d
lmZ edZeedddZe	eeef  eeef dddZeG dd dZ eG dd dZ!eG dd dZ"eG dd dZ#eG dd dZ$eG dd dZ%eG dd dZ&dS )     N)	dataclass)Path)AnyDictIterableListOptionalTuple)tomli_w)Self)ArchiveInfoDirInfoVcsInfo)Link)InstallRequirement)url_to_pathz^pylock\.([^.]+)\.toml$)pathreturnc                 C   s   | j dkpttt| j S )Nzpylock.toml)nameboolrematchPYLOCK_FILE_NAME_RE)r    r   M/var/www/shaz/venv/lib/python3.9/site-packages/pip/_internal/models/pylock.pyis_valid_pylock_file_name   s    r   )datar   c                 C   s   dd | D S )Nc                 S   s&   i | ]\}}|d ur| dd|qS )N_-)replace).0keyvaluer   r   r   
<dictcomp>       z&_toml_dict_factory.<locals>.<dictcomp>r   )r   r   r   r   _toml_dict_factory   s    r%   c                   @   sB   e Zd ZU eed< ee ed< ee ed< eed< ee ed< dS )
PackageVcstypeurlrequested_revision	commit_idsubdirectoryN)__name__
__module____qualname__str__annotations__r   r   r   r   r   r&      s
   
r&   c                   @   s.   e Zd ZU eed< ee ed< ee ed< dS )PackageDirectoryr   editabler+   N)r,   r-   r.   r/   r0   r   r   r   r   r   r   r1   $   s   
r1   c                   @   s6   e Zd ZU ee ed< eeef ed< ee ed< dS )PackageArchiver(   hashesr+   N)r,   r-   r.   r   r/   r0   r   r   r   r   r   r3   +   s   
r3   c                   @   s2   e Zd ZU eed< ee ed< eeef ed< dS )PackageSdistr   r(   r4   Nr,   r-   r.   r/   r0   r   r   r   r   r   r   r5   5   s   
r5   c                   @   s2   e Zd ZU eed< ee ed< eeef ed< dS )PackageWheelr   r(   r4   Nr6   r   r   r   r   r7   ?   s   
r7   c                   @   s   e Zd ZU eed< dZee ed< dZee ed< dZ	ee
 ed< dZee ed< dZee ed< dZeee  ed< eeeed	d
dZdS )Packager   Nversionvcs	directoryarchivesdistwheels)ireqbase_dirr   c                 C   sb  |  }| }|j}|sJ | |jd}|jrt|jtrbt|jj	|j
|jj|jj|jd|_	nt|jtrttt|j
  | |jjr|jjnd |jd|_n:t|jtr|jjst t|j
|jj|jd|_nt nxt|j|_t|jtrX|jjst t|j
}|jr>t|j |j
|jjdg|_!nt"|j |j
|jjd|_#nt |S )Nr   )r'   r(   r)   r*   r+   )r   r2   r+   )r(   r4   r+   )r   r(   r4   )$resolveget_distdownload_infocanonical_nameZ	is_direct
isinstanceinfor   r&   r:   r(   r)   r*   r+   r   r1   r   r   relative_toas_posixr2   r;   r   r4   NotImplementedErrorr3   r<   r/   r9   r   is_wheelr7   filenamer>   r5   r=   )clsr?   r@   distrD   packagelinkr   r   r   from_install_requirementY   sh    






z Package.from_install_requirement)r,   r-   r.   r/   r0   r9   r   r:   r&   r;   r1   r<   r3   r=   r5   r>   r   r7   classmethodr   r   r   rQ   r   r   r   r   r8   I   s   
r8   c                   @   sf   e Zd ZU dZeed< dZeed< eje	dZ
ee ed< eddd	Zeee eed
ddZdS )Pylockz1.0lock_versionpip
created_by)default_factorypackages)r   c                 C   s   t tj| tdS )N)Zdict_factory)r
   dumpsdataclassesZasdictr%   )selfr   r   r   as_toml   s    zPylock.as_toml)install_requirementsr@   r   c                    s$   | t  fdd|D dd ddS )Nc                 3   s   | ]}t | V  qd S N)r8   rQ   )r    r?   r@   r   r   	<genexpr>   s   z3Pylock.from_install_requirements.<locals>.<genexpr>c                 S   s   | j S r^   rA   )pr   r   r   <lambda>   r$   z2Pylock.from_install_requirements.<locals>.<lambda>)r!   )rX   )sorted)rM   r]   r@   r   r_   r   from_install_requirements   s    
z Pylock.from_install_requirementsN)r,   r-   r.   rT   r/   r0   rV   rZ   fieldlistrX   r   r8   r\   rR   r   r   r   r   rd   r   r   r   r   rS      s   
rS   )'rZ   r   r   pathlibr   typingr   r   r   r   r   r	   pip._vendorr
   Zpip._vendor.typing_extensionsr   pip._internal.models.direct_urlr   r   r   pip._internal.models.linkr   Zpip._internal.req.req_installr   pip._internal.utils.urlsr   compiler   r   r   r/   r%   r&   r1   r3   r5   r7   r8   rS   r   r   r   r   <module>   s6    
$				S