
    ;ȋh~&                    `   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j         e!          Z" G d de          Z#	 	 	 	 	 	 	 d'd(dZ$d)d!Z%d*d"Z& e
d#$           G 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                  $    e Zd ZU ded<   ded<   dS )_EditableInfostrrequirementz	list[str]commentsN)__name__
__module____qualname____annotations__     \/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/operations/freeze.pyr   r      s*         r   r   Fr   r   list[str] | None
local_onlybool	user_onlypathsisolatedexclude_editableskipContainer[str]returnGenerator[str, None, None]c              #    K   i }t          |                              |d|          }|D ]0}	t                              |	          }
|r|
j        r&|
||
j        <   1| rQt                      }t          j        t                    }| D ]}t          |          5 }|D ]}}|                                r<|                                                    d          s|                    d          r2|                                }||vr|                    |           |V  |                    d          r|                    d          r|dd                                          }n<|t          d          d                                                              d	          }t#          ||
          }n6t%          t'          j        d|                                          |
          }|j        sJt,                              d||                                           t,                              d           t1          |j                  }||vrx||j                 sIt,                              d|t'          j        d|                                          |j                   ||j                                     |           1t7          ||                                                   V  ||= ||j                                     |           	 d d d            n# 1 swxY w Y   |                                D ]a\  }}t          |          dk    rIt,                              d|d                    t=          t          |                                         bdV  t=          |                                d           D ].}|j        |vr#t7          |                                          V  /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                4    | j                                         S N)namelower)xs    r    <lambda>zfreeze.<locals>.<lambda>   s    QV\\^^ r   )key) r   iter_installed_distributionsFrozenRequirement	from_disteditablecanonical_namesetcollectionsdefaultdictlistopenstrip
startswithrstripaddlenlstripr   r   r   subr6   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_namer6   filesinstallations                        r    freezera      s      35ME""?? @  E
  0 0))$// 	 	,/c()) ]J
 %(EE +6*A$*G*G	( H	K H	KMm$$ GK$ FK FKD JJLL!::<<22377!  ?? !&  ${{}}66+//555"&JJJ ';<< ??400 Q#'8>>#3#3DD#'L(9(9(;(;#<#B#B#D#D#K#KC#P#PD#< %-$ $ $
 $9&N2t44::<<%-$ $ $
 $= KG) JJLL	   -   
 3DHM2R2R/2-GG $-X]#; 	O &%B$1$.N2t$<$<$B$B$D$D$,M!" !" !" !" !*(- 8 ? ? N N N N"%m4K&L"M"M"T"T"V"VVVV -.E F%hm4;;MJJJJMFKGK GK GK GK GK GK GK GK GK GK GK GK GK GK GKV %??,, 	 	KD%5zzA~~AIIfSZZ0011   IIII}3355;S;STTT - -&d22l##**,,,,,- -s   JL**L.	1L.	rV   r   r   c                l    	 | j         }| j         d| S # t          $ r | j         d| j         cY S w xY w)Nz==z===)versionraw_namer   raw_version)rV   dist_versions     r    _format_as_name_versionrg      sb    2|
 -11<111	  7 7 7-66D$4666667s    33c           	        | j         }|sJ t          j                            t          j                            |                    }ddlm}m}m} |	                    |          }|At          |           }t                              d||           t          |d| dg          S t          |          j        }	 |                    || j                  }	t          |	g           S # |$ r+ t          |           }t          |d| d	| dg          cY S |$ r<}
t          |           }t          |d| d
| dd|
j         dg          cY d}
~
S d}
~
wt&          $ r5 t                              d||j                   t          |g           cY S t,          $ r%}t                              d|           Y d}~nd}~ww xY wt                              d|           t          |dg          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.vcsri   rj   rk   get_backend_for_dirrg   rL   debugr   typer   get_src_requirementrd   urlr   rN   r6   r   )rV   rn   locationri   rj   rk   vcs_backenddisplayvcs_namerW   exexcs               r    _get_editable_infor      s   
 !% >$$$$w0I J JKKHOOOOOOOOOO))(33K)$//?	
 	
 	

  OWOOOP
 
 
 	

 K  )H;--hFF8 r::::7  
 
 
)$// QHQQwQQQR
 
 
 	
 	
 	
  	
 	
 	
)$// 0h 0 0' 0 0 0bf
 
 
 	
 	
 	
 	
 	
 	
  @ @ @-		
 	
 	
 B?????? V V VOQTUUUUUUUUV
 NNBHMMMAB   s6   ?C+ +-GG1EG?G	GF??GT)frozenc                      e Zd ZU ded<   ded<   ded<    ee          Zded<   edd            Ze	dd            Z
ddZdS )r<   r   r6   rW   r#   r>   )default_factoryzIterable[str]r   r*   r
   c                *    t          | j                  S r5   )r   r6   )selfs    r    r?   z FrozenRequirement.canonical_name   s     +++r   rV   r   c                    |j         }|rt          |          \  }}n0g }|j        }|rt          ||j                  }nt          |          } | |j        |||          S )N)r   )r>   r   
direct_urlr   rd   rg   )clsrV   r>   rW   r   r   s         r    r=   zFrozenRequirement.from_dist   su    = 
	4.t44MCHJ 4;JVV .d33s4=#x(CCCCr   c                    | j         }| j        rd| }d                    t          | j                  t          |          gz             dz   S )Nz-e 
)rW   r>   rQ   rC   r   r   )r   rW   s     r    __str__zFrozenRequirement.__str__   sL    h= 	++Cyydm,,Cz9::TAAr   N)r*   r
   )rV   r   r*   r<   )r*   r   )r   r   r   r   r   tupler   propertyr?   classmethodr=   r   r   r   r    r<   r<      s         IIIHHHNNN#eE:::H::::, , , X, D D D [D B B B B B Br   r<   )NFFNFFr   )r   r!   r"   r#   r$   r#   r%   r!   r&   r#   r'   r#   r(   r)   r*   r+   )rV   r   r*   r   )rV   r   r*   r   )(
__future__r   rA   loggingro   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   rL   r   ra   rg   r   r<   r   r   r    <module>r      s   " " " " " "      				 : : : : : : : : : : ( ( ( ( ( ( ( (       I I I I I I I I 8 8 8 8 8 8 B B B B B B B B D D D D D D D D        2 1 1 1 1 1 X X X X X X		8	$	$    J    %)""v- v- v- v- v-r2 2 2 2? ? ? ?D $B B B B B B B B B Br   