
    )h4                        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j4                  d      ZdedefdZde	eeef      deeef   fdZe G d d             Z e G d d             Z!e G d d             Z"e G d d             Z#e G d d             Z$e G d d             Z%e G d d             Z&y)    N)	dataclass)Path)AnyDictIterableListOptionalTuple)tomli_w)Self)ArchiveInfoDirInfoVcsInfo)Link)InstallRequirement)url_to_pathz^pylock\.([^.]+)\.toml$pathreturnc                 ~    | j                   dk(  xs- t        t        j                  t        | j                               S )Nzpylock.toml)nameboolrematchPYLOCK_FILE_NAME_RE)r   s    N/var/www/html/venv/lib/python3.12/site-packages/pip/_internal/models/pylock.pyis_valid_pylock_file_namer      s+    99%Wbhh7JDII.V)WW    datac                 `    | D ci c]  \  }}|	|j                  dd      | c}}S c c}}w )N_-)replace)r   keyvalues      r   _toml_dict_factoryr%      s/    ;?UZS%5CTCKKS!5(UUUs   
**c                   R    e Zd ZU eed<   ee   ed<   ee   ed<   eed<   ee   ed<   y)
PackageVcstypeurlrequested_revision	commit_idsubdirectoryN)__name__
__module____qualname__str__annotations__r	    r   r   r'   r'      s*    
I	# %N3-r   r'   c                   8    e Zd ZU eed<   ee   ed<   ee   ed<   y)PackageDirectoryr   editabler,   N)r-   r.   r/   r0   r1   r	   r   r2   r   r   r4   r4   $   s    
Itn3-r   r4   c                   B    e Zd ZU ee   ed<   eeef   ed<   ee   ed<   y)PackageArchiver)   hashesr,   N)r-   r.   r/   r	   r0   r1   r   r2   r   r   r7   r7   +   s&    	# cN3-r   r7   c                   <    e Zd ZU eed<   ee   ed<   eeef   ed<   y)PackageSdistr   r)   r8   Nr-   r.   r/   r0   r1   r	   r   r2   r   r   r:   r:   5   !    
I	# cNr   r:   c                   <    e Zd ZU eed<   ee   ed<   eeef   ed<   y)PackageWheelr   r)   r8   Nr;   r2   r   r   r>   r>   ?   r<   r   r>   c                       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d	ed
edefd       Zy)Packager   Nversionvcs	directoryarchivesdistwheelsireqbase_dirr   c                    |j                         }|j                         }|j                  }|sJ  | |j                        }|j                  rt        |j                  t              rgt        |j                  j                  |j                  |j                  j                  |j                  j                  |j                        |_	        |S t        |j                  t              rt        t!        t#        |j                              j                         j%                  |      j'                         |j                  j(                  r|j                  j(                  nd |j                        |_        |S t        |j                  t,              r]|j                  j.                  s
t1               t3        |j                  |j                  j.                  |j                        |_        |S t1               t7        |j8                        |_        t        |j                  t,              r|j                  j.                  s
t1               t;        |j                        }|j<                  r>t?        |j@                  |j                  |j                  j.                        g|_!        |S tE        |j@                  |j                  |j                  j.                        |_#        |S t1               )Nr   )r(   r)   r*   r+   r,   )r   r5   r,   )r)   r8   r,   )r   r)   r8   )$resolveget_distdownload_infocanonical_name	is_direct
isinstanceinfor   r'   rB   r)   r*   r+   r,   r   r4   r   r   relative_toas_posixr5   rC   r   r8   NotImplementedErrorr7   rD   r0   rA   r   is_wheelr>   filenamerF   r:   rE   )clsrG   rH   distrM   packagelinks          r   from_install_requirementz Package.from_install_requirementY   sX   ##%}}**}4../>>-,,g6(&++//%))'4'9'9'L'L+00::!.!;!;p c M..8$4[):):;< $X.! )--66 &**33!!.!;!;%!` E M..<$))00-//"0%))(--44!.!;!;#> 1 *++!$,,/GO-,,k:$))00-//M--.==$!% - 1 1#0#5#5#<#<&GN   %1!]])--,1188%GM  *++r   )r-   r.   r/   r0   r1   rA   r	   rB   r'   rC   r4   rD   r7   rE   r:   rF   r   r>   classmethodr   r   r   r[   r2   r   r   r@   r@   I   s    
I!GXc]! !%C*	$,0Ix()0(,GXn%,$(E8L!(+/FHT,'(/ @,> @$ @SW @ @r   r@   c                       e Zd ZU dZeed<   dZeed<    ej                  e	      Z
ee   ed<   defdZed	ee   d
edefd       Zy)Pylockz1.0lock_versionpip
created_by)default_factorypackagesr   c                 ^    t        j                  t        j                  | t                    S )N)dict_factory)r   dumpsdataclassesasdictr%   )selfs    r   as_tomlzPylock.as_toml   s    }}[//CUVWWr   install_requirementsrH   c                 @     | t        fd|D        d             S )Nc              3   J   K   | ]  }t         j                  |        y wN)r@   r[   ).0rG   rH   s     r   	<genexpr>z3Pylock.from_install_requirements.<locals>.<genexpr>   s&       44T8Ds    #c                     | j                   S rn   rJ   )ps    r   <lambda>z2Pylock.from_install_requirements.<locals>.<lambda>   s
    aff r   )r#   )rc   )sorted)rW   rk   rH   s     `r   from_install_requirementsz Pylock.from_install_requirements   s,      4 %
 	
r   N)r-   r.   r/   r_   r0   r1   ra   rg   fieldlistrc   r   r@   rj   r\   r   r   r   r   ru   r2   r   r   r^   r^      ss    L#
 J/k//EHd7mEX X 
#+,>#?
KO
	
 
r   r^   )'rg   r   r   pathlibr   typingr   r   r   r   r	   r
   pip._vendorr   pip._vendor.typing_extensionsr   pip._internal.models.direct_urlr   r   r   pip._internal.models.linkr   pip._internal.req.req_installr   pip._internal.utils.urlsr   compiler   r   r   r0   r%   r'   r4   r7   r:   r>   r@   r^   r2   r   r   <module>r      s2    	 !  = =  . I I * < 0 bjj!;< XD XT XVT%S/2 VtCH~ V                         P P Pf 
 
 
r   