
    鴀j2(                    n   d dl m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 d dlmZmZmZmZmZmZ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 d dl m!Z!m"Z" e
rd dl#m$Z$ d dl%m&Z& d;dZ'd<dZ( ej)        dej*                  Z+d=dZ,d>d Z-d?d%Z.d@d(Z/dAd+Z0dBd.Z1dCd1Z2dDd4Z3dEd8Z4dFd:Z5dS )G    )annotationsN)IterableIterator)Path)TYPE_CHECKING)urljoinurlsplit)PackagePackageArchivePackageDirectoryPackageSdist
PackageVcsPackageWheelPylockis_valid_pylock_path)Version)DiagnosticPipErrorInstallationError)Link)tomllib)path_to_urlurl_to_path)
PipSession)InstallRequirementireqr   base_dirr   returnr
   c           	     Z   |                                 }|                                 }| j        }|sJ d }d }d }d }d }d }	| j        r*|j        r?t          |j        j        |j        d |j        j        |j        j	        |j
                  }n|j        rt          t          t          |j                                                                                 |                                          |j        j        r|j        j        nd |j
                  }n|j        rB|j        j        st)                      t+          |j        d |j        j        |j
                  }nt)                      |j        }|j        r|j        j        st)                      t/          |j                  }
|
j        r(t3          |
j        |j        |j        j                  g}	n5t7          |
j        |j        |j        j                  }nt)                      t9          |j        ||||||	          S )N)typeurlpathrequested_revision	commit_idsubdirectory)r!   editabler$   )r    r!   hashesr$   )namer    r&   )r'   versionvcs	directoryarchivesdistwheels)resolveget_distdownload_info	is_directvcs_infor   r)   r    r"   r#   r$   dir_infor   r   r   relative_toas_posixr%   archive_infor&   NotImplementedErrorr   r(   r   is_wheelr   filenamer   r
   canonical_name)r   r   distr0   package_versionpackage_vcspackage_directorypackage_archivepackage_sdistpackage_wheelslinks              d/workspace/show-city-briefing-agent/.venv/lib/python3.11/site-packages/pip/_internal/utils/pylock.py(_pylock_package_from_install_requirementrD       si    !!H==??D&MOKOMN~ ;(! #	($"+/!%#0#9#L'0:*7  KK # 	( 0]%67788WYY [**XZZ %-6M*33*7! ! ! ' 	( -4 ,)+++,!%$18*7	  OO &''',% 	( -4 ,)+++)**D}  !])-,9@  " !-%)(5<! ! ! &''' #       install_requirementsIterable[InstallRequirement]r   c                z    t          t          d          dt          fd| D             d                     S )Nz1.0pipc              3  8   K   | ]}t          |          V  d S N)rD   ).0r   r   s     rC   	<genexpr>z3pylock_from_install_requirements.<locals>.<genexpr>{   sA         9xHH     rE   c                    | j         S rK   )r'   )ps    rC   <lambda>z2pylock_from_install_requirements.<locals>.<lambda>   s    !& rE   )key)lock_version
created_bypackages)r   r   sorted)rF   r   s    `rC    pylock_from_install_requirementsrV   t   sh     U^^   0   ! 
 
 

 
 
 
rE   z^(http|https|file)://sstrboolc                P    t          t                              |                     S rK   )rY   
_SCHEME_REmatch)rW   s    rC   _is_urlr]      s    
  ##$$$rE   r9   c                    t          |           r;t          t          |           j                            d          d                   }nt          |           }t          |          S )N/)r]   r   r	   r!   
rpartitionr   )r9   r!   s     rC   is_valid_pylock_filenamerb      sX    x HX&&+66s;;B?@@H~~%%%rE   pylock_path_or_urlr!   
str | Noner    c                0   |t           j                            |          st          |           rct	          | |          }t          |           }t          |          }|j        |j        f|j        |j        fk    rt          d|d|           |S t          t           j        
                    t           j                            |           |                    S t          |           rt          d|d|           t          |          S |J |S )zCompute an url from a Pylock package path and url.

    Give priority to path over url. If path is relative,
    compute an url using the pylock file location as base.
    NzPath zC in pylock file obtained from a URL resolves outside its location: zFAbsolute paths are not supported in pylock files obtained from a URL: z in )osr!   isabsr]   r   r	   schemenetlocr   r   joindirname)rc   r!   r    dist_urlbasetargets         rC   _package_dist_urlro      sR    w}}T"" 	%)** "#5t<<
   233!(++M6=1dk4;5OOO+Q Q Q:LQ Q    "GLL1C!D!DdKK  
 )** 'F#'F F/AF F   t$$$
rE   r=   r   c                    t          | |j        |j                  }|j         d| d|j         }|j        r'd|v rt          d|d| d          |d|j        z   z  }|S )N+@#Package URL E cannot contain fragments in combination with subdirectory field (in )#subdirectory=)ro   r!   r    r   r#   r$   r   )rc   r=   rl   r    s       rC   package_vcs_requirement_urlrx      s     !!3[5E{WWH
B
B
B
B;+@
B
BC ;#::#Gs G G/AG G G   	+":::JrE   r?   r   c                    t          | |j        |j                  }|j        r'd|v rt	          d|d| d          |d|j        z   z  }|S )Nrs   rt   ru   rv   rw   )ro   r!   r    r$   r   )rc   r?   r    s      rC   package_archive_requirement_urlrz      s     O0/2E C # ?#::#Gs G G/AG G G   	/">>>JrE   r>   r   c                V   t          |           r'|                     d          st          d|           t          | |j        d           }|                    d          sJ |                    d          s|dz  }|j        r$||j        z  }|                    d          s|dz  }|S )Nzfile://z:Directory entries are not supported in remote pylock.toml r_   )r]   
startswithr   ro   r!   endswithr$   )rc   r>   r    s      rC   !package_directory_requirement_urlr~      s     !"" 
+=+H+H+S+S 
&!& &
 
 	
 .0A0F
M
MC>>)$$$$$<< s
%  --||C   	3JCJrE   r@   r   c                8    t          | |j        |j                  S rK   ro   r!   r    )rc   r@   s     rC   package_sdist_requirement_urlr           /1C]EVWWWrE   package_wheelr   c                8    t          | |j        |j                  S rK   r   )rc   r   s     rC   package_wheel_requirement_urlr      r   rE   path_or_urlsessionr   c                    t          |           j        }|dv r-ddlm} |                    |           } ||           |j        S t          |                               d          S )N)httphttpsfiler   )raise_for_statuszutf-8)encoding)r	   rh   pip._internal.network.utilsr   gettextr   	read_text)r   r   rh   r   resps        rC   _get_pylock_path_or_url_contentr      s{    k"")F***@@@@@@{{;''y &&&888rE   fIterator[tuple[Package, PackageVcs | PackageDirectory | PackageArchive | PackageWheel | PackageSdist]]c              #    K   	 t          | |          }n2# t          $ r  t          $ r}t          d| d|           |d }~ww xY w	 t	          j        t          j        |                    }n(# t          $ r}t          d| d|           |d }~ww xY w	 |                                E d {V  d S # t          $ r}t          d| d|           |d }~ww xY w)NzError reading pylock file z: zInvalid pylock file z,Cannot select requirements from pylock file )	r   r   	Exceptionr   r   	from_dictr   loadsselect)rc   r   pylock_contentexclocks        rC   select_from_pylock_path_or_urlr     sY     89KWUU      F);FFFF
 
	
n = =>>   @#5@@3@@
 
	
 ;;==            X;MXXSVXX
 
	sB    A?A&A/ /
B9BBB4 4
C>CC)r   r   r   r   r   r
   )rF   rG   r   r   r   r   )rW   rX   r   rY   )r9   rX   r   rY   )rc   rX   r!   rd   r    rd   r   rX   )rc   rX   r=   r   r   rX   )rc   rX   r?   r   r   rX   )rc   rX   r>   r   r   rX   )rc   rX   r@   r   r   rX   )rc   rX   r   r   r   rX   )r   rX   r   r   r   rX   )rc   rX   r   r   r   r   )6
__future__r   rf   recollections.abcr   r   pathlibr   typingr   urllib.parser   r	   pip._vendor.packaging.pylockr
   r   r   r   r   r   r   r   pip._vendor.packaging.versionr   pip._internal.exceptionsr   r   pip._internal.models.linkr   pip._internal.utils.compatr   pip._internal.utils.urlsr   r   pip._internal.network.sessionr   pip._internal.req.req_installr   rD   rV   compile
IGNORECASEr[   r]   rb   ro   rx   rz   r~   r   r   r   r    rE   rC   <module>r      s   " " " " " " 				 				 . . . . . . . .                   * * * * * * * *	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 2 1 1 1 1 1 J J J J J J J J * * * * * * . . . . . . = = = = = = = = A888888@@@@@@Q Q Q Qh     RZ/??
% % % %& & & &' ' ' 'T          &X X X XX X X X9 9 9 9            rE   