o
    ©„j~&  ã                   @  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mZ d dl	m
Z
mZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZmZ d d
lmZmZ d dlmZ d dlmZ e  e!¡Z"G dd„ deƒZ#							d*d+dd„Z$d,d"d#„Z%d-d$d%„Z&e
d&d'�G d(d)„ d)ƒƒZ'dS ).é    )ÚannotationsN)Ú	ContainerÚ	GeneratorÚIterable)Ú	dataclassÚfield)Ú
NamedTuple)ÚNormalizedNameÚcanonicalize_name)ÚInvalidVersion)Ú
BadCommandÚInstallationError)ÚBaseDistributionÚget_environment)Úinstall_req_from_editableÚinstall_req_from_line)Ú
COMMENT_RE)Ú%direct_url_as_pep440_direct_referencec                   @  s   e Zd ZU ded< ded< dS )Ú_EditableInfoÚstrÚrequirementz	list[str]ÚcommentsN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   ú]/var/www/html/django_cbt/venv/lib/python3.10/site-packages/pip/_internal/operations/freeze.pyr      s   
 r   Fr   r   úlist[str] | NoneÚ
local_onlyÚboolÚ	user_onlyÚpathsÚisolatedÚexclude_editableÚskipúContainer[str]ÚreturnúGenerator[str, None, None]c                 c  sT  � i }t |ƒj|d|d�}|D ]}	t |	¡}
|r|
jrq|
||
j< q| �rtƒ }t t	¡}| D ]¼}t
|ƒ�®}|D ]£}| ¡ rJ| ¡  d¡sJ| d¡r[| ¡ }||vrZ| |¡ |V  q8| d¡r‚| d¡rn|dd …  ¡ }n|tdƒd …  ¡  d	¡}t||d
�}ntt d|¡ ¡ |d
�}|js t d|| ¡ ¡ t d¡ q8t|jƒ}||vrÇ||j s¾t d|t d|¡ ¡ |j¡ q8||j  |¡ q8t|| ƒ ¡ V  ||= ||j  |¡ q8W d   ƒ n1 sæw   Y  q/| ¡ D ]\}}t|ƒdk�r	t d|d tt|ƒƒ¡¡ qðdV  t| ¡ dd„ d�D ]}|j|v�r&t|ƒ ¡ V  �qd S )Nr   )r   r%   r!   ú#)z-rz--requirementz-fz--find-linksz-iz--index-urlz--prez--trusted-hostz--process-dependency-linksz--extra-index-urlz--use-feature)ú-eú
--editabler*   é   r+   ú=)r#   Ú zWSkipping line in requirement file [%s] because it's not clear what it would install: %sz9  (add #egg=PackageName to the URL to avoid this warning)zBRequirement file [%s] contains %s, but package %r is not installedé   z+Requirement %s included multiple times [%s]z, z7## The following requirements were added by pip freeze:c                 S  s
   | j  ¡ S ©N)ÚnameÚlower)Úxr   r   r   Ú<lambda>’   s   
 zfreeze.<locals>.<lambda>)Úkey) r   Úiter_installed_distributionsÚFrozenRequirementÚ	from_distÚeditableÚcanonical_nameÚsetÚcollectionsÚdefaultdictÚlistÚopenÚstripÚ
startswithÚrstripÚaddÚlenÚlstripr   r   r   Úsubr1   ÚloggerÚinfor
   ÚwarningÚappendr   ÚitemsÚjoinÚsortedÚvalues)r   r   r!   r"   r#   r$   r%   ÚinstallationsÚdistsÚdistÚreqÚemitted_optionsÚ	req_filesÚreq_file_pathÚreq_fileÚlineÚline_reqÚline_req_canonical_namer1   ÚfilesÚinstallationr   r   r   Úfreeze   s¤   €	ý



ÿþÿý


þþüÿ

ûºÿ€Ký€€þr\   rQ   r   r   c                 C  s@   z| j }W n ty   | j› d| j› � Y S w | j› d|› �S )Nz===z==)Úversionr   Úraw_nameÚraw_version)rQ   Údist_versionr   r   r   Ú_format_as_name_version—   s   
þra   c              
   C  sš  | j }|sJ ‚tj tj |¡¡}ddlm}m}m} | 	|¡}|du r:t
| ƒ}t d||¡ t|d|› d�gd�S t|ƒj}z	| || j¡}	W nq |yc   t
| ƒ}t|d|› d	|› d�gd� Y S  |yŒ }
 zt
| ƒ}t|d|› d
|› d�d|
j› d�gd�W  Y d}
~
S d}
~
w ty¢   t d||j¡ t|g d� Y S  ty¹ } zt d|¡ W Y d}~nd}~ww t|	g d�S t d|¡ t|dgd�S )za
    Compute and return values (req, comments) for use in
    FrozenRequirement.from_dist().
    r   )ÚRemoteNotFoundErrorÚRemoteNotValidErrorÚvcsNz1No VCS found for editable requirement "%s" in: %rz,# Editable install with no version control (ú))r   r   z# Editable z install with no remote (z
 install (z4) with either a deleted local remote or invalid URI:z# 'ú'zPcannot determine version of editable source in %s (%s command not found in path)z6Error when trying to get requirement for VCS system %sz-Could not determine repository location of %sz-## !! Could not determine repository location)Úeditable_project_locationÚosÚpathÚnormcaseÚabspathÚpip._internal.vcsrb   rc   rd   Úget_backend_for_dirra   rG   Údebugr   Útyper   Úget_src_requirementr^   Úurlr   rI   r1   r   )rQ   rg   Úlocationrb   rc   rd   Úvcs_backendÚdisplayÚvcs_namerR   ÚexÚexcr   r   r   Ú_get_editable_info¡   sf   
ýþ

þýþ€ü€ÿþrx   T)Úfrozenc                   @  s^   e Zd ZU ded< ded< ded< eed�Zded< eddd„ƒZe	ddd„ƒZ
ddd„ZdS )r7   r   r1   rR   r    r9   )Údefault_factoryzIterable[str]r   r'   r	   c                 C  s
   t | jƒS r0   )r
   r1   )Úselfr   r   r   r:   ê   s   
z FrozenRequirement.canonical_namerQ   r   c                 C  sN   |j }|rt|ƒ\}}ng }|j}|rt||jƒ}nt|ƒ}| |j|||d�S )N)r   )r9   rx   Ú
direct_urlr   r^   ra   )ÚclsrQ   r9   rR   r   r|   r   r   r   r8   î   s   zFrozenRequirement.from_distc                 C  s4   | j }| jrd|› �}d t| jƒt|ƒg ¡d S )Nz-e Ú
)rR   r9   rL   r>   r   r   )r{   rR   r   r   r   Ú__str__ÿ   s   
zFrozenRequirement.__str__N)r'   r	   )rQ   r   r'   r7   )r'   r   )r   r   r   r   r   Útupler   Úpropertyr:   Úclassmethodr8   r   r   r   r   r   r7   ã   s   
 r7   )NFFNFFr   )r   r   r   r    r!   r    r"   r   r#   r    r$   r    r%   r&   r'   r(   )rQ   r   r'   r   )rQ   r   r'   r   )(Ú
__future__r   r<   Úloggingrh   Úcollections.abcr   r   r   Údataclassesr   r   Útypingr   Úpip._vendor.packaging.utilsr	   r
   Úpip._vendor.packaging.versionr   Úpip._internal.exceptionsr   r   Úpip._internal.metadatar   r   Úpip._internal.req.constructorsr   r   Úpip._internal.req.req_filer   Ú&pip._internal.utils.direct_url_helpersr   Ú	getLoggerr   rG   r   r\   ra   rx   r7   r   r   r   r   Ú<module>   s8    
ù
y

B