
    鴀j2                    r   d dl mZ d dl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 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 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$ erd dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z.  ej/        e0          Z1 G d d          Z2 G d d          Z3dS )    )annotationsN)IterableSequence)AbstractContextManager)nullcontext)StringIO)TYPE_CHECKING)Prefix)open_rich_spinneropen_spinner)BuildDependencyInstallErrorDiagnosticPipErrorInstallWheelBuildErrorPipError)get_environment)VERBOSEcapture_logging)get_runnable_pip)call_subprocess)TempDirectory)
WheelCache)PackageFinder)BuildTracker)InstallRequirement)BaseResolverc                  &    e Zd ZdZ	 ddd	ZddZdS )#SubprocessBuildEnvironmentInstallerzD
    Install build dependencies by calling pip in a subprocess.
    Nfinderr   build_constraintslist[str] | NonereturnNonec                &    || _         |pg | _        d S N)r   _build_constraints)selfr   r   s      k/workspace/show-city-briefing-agent/.venv/lib/python3.11/site-packages/pip/_internal/build_env/installer.py__init__z,SubprocessBuildEnvironmentInstaller.__init__*   s    
 "3"9r    requirementsIterable[str]prefixr
   kindstrfor_reqInstallRequirement | Nonec          
     
   | j         }t                      dd|j        ddddddg
}|j        r|                    d	|j                   n5|                    d	t
          j                   |                    d
           t          	                                t          j        k    r|                    d           n7t          	                                t          k    r|                    d           dD ]h}t          |j        |          }|                    d|                    dd          z   d                    t%          |pdh                    f           i|j        M|j                                        D ]3\  }	}
|                    d|	                    dd          z   |
f           4|j        }|rB|                    d|d	         g           |dd          D ]}|                    d|g           n|                    d           |j        D ]}|                    d|g           |j        |                    d|j        g           |j        r|                    d           |j        D ]}|                    d|g           |j        r|                    d|j        g           |j        r|                    d|j        g           |j        r|                    d           |j        r/|                    dd                    |j                  g           | j        D ]}|                    d|g           |j        r.|                    d |j                                         g           |                    d           |                    |           |r|j!        r
d!|j!         nd}tE          d"|           5 }tG          |d#| | |d$d%i&           d d d            d S # 1 swxY w Y   d S )'Ninstallz--prefixz	--no-userz--no-warn-script-locationz--disable-pip-version-checkz--no-compilez--target r   z--ignore-installedz-vvz-v)	no_binaryonly_binaryz--_-,z:none:z-i   z--extra-index-urlz
--no-indexz--find-linksz--proxyz--no-proxy-envz--trusted-hostz--certz--client-certz--prefer-binaryz--refresh-packagez--build-constraintz--uploaded-prior-toz for Installing zinstalling  _PIP_IN_BUILD_IGNORE_CONSTRAINTS1)command_descspinnerextra_environ)$r   r   pathvenv_executableinsertsys
executableappendloggergetEffectiveLevelloggingDEBUGr   getattrformat_controlextendreplacejoinsortedrelease_controlget_ordered_args
index_urls
find_linksproxyno_proxy_envtrusted_hostscustom_certclient_certprefer_binaryrefresh_packager%   uploaded_prior_to	isoformatnamer   r   )r&   r*   r,   r-   r/   r   argsrK   formats	attr_namevaluerR   extra_indexlinkhostconstraint_fileidentify_requirementr>   s                     r'   r2   z+SubprocessBuildEnvironmentInstaller.install2   s     K')  %
( ! 	.KK612222KK3>***KK,---##%%66KK%%''722KK: 	 	Nf3^DDGKK>11#s;;;HHVG$9z::;;    !- %+$:$K$K$M$M I I 	5TI$5$5c3$?$??GHHHH&
 	&KKz!}-...)!""~ @ @0+>????@ KK%%%% 	0 	0DKK.//// <#KKFL1222 	*KK()))( 	2 	2DKK)401111 	8KK6#56777 	?KK&*<=>>> 	+KK)***! 	QKK,chhv7M.N.NOPPP  $6 	A 	AOKK-?@@@@# 	WKK.0H0R0R0T0TUVVVDL!!! '.F',F"GL"""B 	 ...// 	7G4G1EGGA3G	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   O88O<?O<r$   )r   r   r   r    r!   r"   
r*   r+   r,   r
   r-   r.   r/   r0   r!   r"   )__name__
__module____qualname____doc__r(   r2    r)   r'   r   r   %   sV          /3: : : : :f f f f f fr)   r   c                  :    e Zd ZdZdddddZd dZd!dZd"dZdS )#"InprocessBuildEnvironmentInstallera  
    Install build dependencies via the already running pip process.

    This contains a stripped down version of the install command with
    only the logic necessary for installing build dependencies. The
    finder, session, build tracker, and wheel cache are reused, but new
    instances of everything else are created as needed.

    Options are inherited from the parent install command unless
    they don't make sense for build dependencies (in which case, they
    are hard-coded, see comments below).
    rl   r   )r   	verbosityr   r   build_trackerr   wheel_cacher   r   Sequence[InstallRequirement]ro   intr!   r"   c                   ddl m} || _        || _        || _        d| _        t          dd          } |di d| d|d|j        j        d	|j	        d
|d|dddd dddddddddddddddd| _
        d S )Nr   )RequirementPreparerzbuild-env-installT)r-   globally_managedbuild_isolation_installerr   session	build_dirrp   ro   src_dirr3   download_dirbuild_isolationvirtualcheck_build_depsFprogress_baroffrequire_hashesuse_user_site
lazy_wheellegacy_resolverallow_editablesrl   ) pip._internal.operations.prepareru   _finderr%   _wheel_cache_levelr   _link_collectorrx   r@   	_preparer)r&   r   rp   rq   r   ro   ru   ry   s           r'   r(   z+InprocessBuildEnvironmentInstaller.__init__   s,    	IHHHHH"3'!':TRRR	,, 
 
 
&*d
 6
 *22	

  nn
 (-
  i
 B
 
 &I
 #U
 
" !5#
$  %%
& u'
( "E)
* !D+
r)   r*   r+   r,   r
   r-   r.   r/   r0   c                  t                               t                     o
| j        dk    }|r!t	                      }t          d|           }nDt          t                                t                      }}t                               d|           	 | xj        dz  c_        |5  |5 }| 	                    ||           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   nC# t          $ r}	t                               t          j        |                                                     t                               d|	ddi	           t                               d
           t          |||	d          d}	~	wt           $ r}	t          j        |                                                                          }
|sMd}
t%          |	t&                    rt                               d|	           nt                               d           t          |||	|
          d}	~	ww xY w| xj        dz  c_        dS # | xj        dz  c_        w xY w)z@Install entrypoint. Manages output capturing and error handling.r   r:   zInstalling %s ...r9   Nz%srichT)extrar3   )cause	log_lineszpip crashed unexpectedly)rF   isEnabledForr   r   r   r   r   r   info_install_implr   textwrapdedentgetvalueerrorr   	Exception
splitlines
isinstancer   	exception)r&   r*   r,   r-   r/   capture_logscapture_ctxr>   streamexclogss              r'   r2   z*InprocessBuildEnvironmentInstaller.install   s    "..w777LDK1<L 	3 5D4E4EK,=>RD>R>R,S,SGG $/xzz#:#:KMMKKK+T222	KK1KK 9 9+ 9""<8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 " 	 	 	 KK(9(9::;;;LLs64.L999KKOOO-SD     	 	 	%-_V__5F5F%G%G%R%R%T%TD A c8,, ALLs++++$$%?@@@-SD   	 KK1KKKKDKK1KKKKKKs   C0 &C#)C C#C	C#C	C#C0 #C''C0 *C'+C0 .I 0
H0:B
FH0BH++H00I Ic                   ddl m} ddlm} ddlm ddlm} fd|D             }|                    | j	                   | 
                                }|                    |d          }| j                            |j                                                   d	 |j        D             }	 ||	| j        dd
          \  }
}|rt%          |           ||                    |          |j        dddddd|j        	  	        }t-          t/          |j                            } |||          x}rt2                              |           dS dS )z$Core build dependency install logic.r   )installed_packages_summary)install_given_reqs)install_req_from_line)buildc                *    g | ]} |d           S )T)user_suppliedrl   ).0reqr   s     r'   
<listcomp>zDInprocessBuildEnvironmentInstaller._install_impl.<locals>.<listcomp>  s*    XXXC&&s$???XXXr)   T)check_supported_wheelsc                     g | ]}|j         	|S rl   )is_wheel)r   rs     r'   r   zDInprocessBuildEnvironmentInstaller._install_impl.<locals>.<listcomp>  s/     
 
 
1:

 
 
r)   )verifyr   NFr   )r,   roothomewarn_script_locationr   	pycompiler   script_executable)pip._internal.commands.installr   pip._internal.reqr   pip._internal.req.constructorsr   pip._internal.wheel_builderr   rL   r%   _make_resolverresolver    prepare_linked_requirements_morer*   valuesrequirements_to_installr   r   get_installation_orderr@   rA   r   listlib_dirsrF   r   )r&   r*   r,   r   r   r   ireqsresolverresolved_setreqs_to_buildr6   build_failures	installedenvsummaryr   s                  @r'   r   z0InprocessBuildEnvironmentInstaller._install_impl
  s   MMMMMM888888HHHHHH555555XXXX<XXXT,---&&((''d'KK77%,,..	
 	
 	

 
#;
 
 
 "E4,T4
 
 
>  	9(888&&++L99;!& $4
 
 
	  d6?334400C@@@7 	!KK     	! 	!r)   r   c                f    ddl m} ddlm}  ||| j        | j        | j        dddddddd          S )	z'Create a new resolver for one time use.r   )install_req_from_req_string)ResolverFTzto-satisfy-onlyN)make_install_reqpreparerr   rq   ignore_requires_pythonr   ignore_dependenciesonly_dependenciesignore_installedforce_reinstallupgrade_strategypy_version_info)r   r   ,pip._internal.resolution.resolvelib.resolverr   r   r   r   )r&   r   r   s      r'   r   z1InprocessBuildEnvironmentInstaller._make_resolver7  sm     	ONNNNNIIIIIIx8^<)#( %#!!. 
 
 
 	
r)   N)r   r   rp   r   rq   r   r   rr   ro   rs   r!   r"   rg   )r*   r+   r,   r
   r!   r"   )r!   r   )rh   ri   rj   rk   r(   r2   r   r   rl   r)   r'   rn   rn      s         . ;='
 '
 '
 '
 '
 '
R2 2 2 2h+! +! +! +!Z
 
 
 
 
 
r)   rn   )4
__future__r   rH   rC   r   collections.abcr   r   
contextlibr   ContextManagerr   ior   typingr	   pip._internal.build_env.baser
   pip._internal.cli.spinnersr   r   pip._internal.exceptionsr   r   r   r   pip._internal.metadatar   pip._internal.utils.loggingr   r   pip._internal.utils.miscr   pip._internal.utils.subprocessr   pip._internal.utils.temp_dirr   pip._internal.cacher   "pip._internal.index.package_finderr   ,pip._internal.operations.build.build_trackerr   pip._internal.req.req_installr   pip._internal.resolution.baser   	getLoggerrh   rF   r   rn   rl   r)   r'   <module>r      s=   " " " " " "  



  . . . . . . . . ? ? ? ? ? ? " " " " " "                   / / / / / / F F F F F F F F            3 2 2 2 2 2 @ @ @ @ @ @ @ @ 5 5 5 5 5 5 : : : : : : 6 6 6 6 6 6 ;......@@@@@@IIIIII@@@@@@:::::: 
	8	$	$s s s s s s s slr
 r
 r
 r
 r
 r
 r
 r
 r
 r
r)   