
    5>qj2                    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 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      Z3y)    )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                  B    e Zd ZdZ	 d	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 ddZy)#SubprocessBuildEnvironmentInstallerzD
    Install build dependencies by calling pip in a subprocess.
    Nc                (    || _         |xs g | _        y N)finder_build_constraints)selfr    build_constraintss      `/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/pip/_internal/build_env/installer.py__init__z,SubprocessBuildEnvironmentInstaller.__init__*   s    
 "3"9r    c          
        | j                   }t               dd|j                  ddddddg
}|j                  r|j	                  d	|j                         n1|j	                  d	t
        j                         |j                  d
       t        j                         t        j                  k  r|j                  d       n,t        j                         t        k  r|j                  d       dD ][  }t        |j                  |      }|j                  d|j!                  dd      z   dj#                  t%        |xs dh            f       ] |j&                  H|j&                  j)                         D ]+  \  }	}
|j                  d|	j!                  dd      z   |
f       - |j*                  }|r4|j                  d|d	   g       |dd  D ]  }|j                  d|g        n|j                  d       |j,                  D ]  }|j                  d|g        |j.                  |j                  d|j.                  g       |j0                  r|j                  d       |j2                  D ]  }|j                  d|g        |j4                  r|j                  d|j4                  g       |j6                  r|j                  d|j6                  g       |j8                  r|j                  d       |j:                  r,|j                  ddj#                  |j:                        g       | j<                  D ]  }|j                  d|g        |j>                  r+|j                  d |j>                  jA                         g       |j                  d       |j                  |       |r|jB                  rd!|jB                   nd}tE        d"|       5 }tG        |d#| | |d$d%i&       d d d        y # 1 sw Y   y xY w)'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"   requirementsprefixkindfor_reqr    argsrA   formats	attr_namevaluerH   extra_indexlinkhostconstraint_fileidentify_requirementr4   s                     r$   r(   z+SubprocessBuildEnvironmentInstaller.install2   s     KK')  %
( !!KK6112KK3>>*KK,-##%6KK%%'72KK: 	Nf33^DGKK>11#s;;HHVG$9z:;	 !!- %+$:$:$K$K$M I 	5TI$5$5c3$??GHI &&
KKz!}-.)!"~ @0+>?@ KK%%% 	0DKK./	0 <<#KKFLL12KK()(( 	2DKK)401	2KK6#5#567KK&*<*<=>KK)*!!KK,chhv7M7M.NOP  $66 	AOKK-?@	A ##KK.0H0H0R0R0TUVDL! '.',,eGLL>"B 	 Kv./ 	7*4&1E0FGA3G		 	 	s   O..O7r   )r    r   r#   zlist[str] | NonereturnNone
rT   Iterable[str]rU   r
   rV   strrW   zInstallRequirement | Nonera   rb   )__name__
__module____qualname____doc__r%   r(    r&   r$   r   r   %   sh     /3:: ,: 
	:f#f f
 f +f 
fr&   r   c                  b    e Zd ZdZddd	 	 	 	 	 	 	 	 	 	 	 d
dZ	 	 	 	 	 	 	 	 	 	 ddZddZddZy	)"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).
    rj   r   )r#   	verbosityc                  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| _
        y )Nr   )RequirementPreparerzbuild-env-installT)rV   globally_managedbuild_isolation_installerr    session	build_dirbuild_trackerrm   src_dirr)   download_dirbuild_isolationvirtualcheck_build_depsFprogress_baroffrequire_hashesuse_user_site
lazy_wheellegacy_resolverallow_editablesrj   ) pip._internal.operations.preparero   _finderr!   _wheel_cache_levelr   _link_collectorrr   r6   	_preparer)r"   r    rt   wheel_cacher#   rm   ro   rs   s           r$   r%   z+InprocessBuildEnvironmentInstaller.__init__   s     	I"3'!':TR	, 
&*
 
 **22	

  nn
 (
  
 
 
 &
 #
 
" !#
$  %
& '
( ")
* !+
r&   c               "   t         j                  t               xr | j                  dk(  }|rt	               }t        d|       }n3t        t                     t               }}t         j                  d|       	 | xj                  dz  c_        |5  |5 }| j                  ||       ddd       ddd       | xj                  dz  c_        y# 1 sw Y   'xY w# 1 sw Y   +xY w# t        $ ry}	t         j                  t        j                  j                                      t         j                  d|	ddi	       t         j                  d
       t        |||	d      d}	~	wt         $ r}	t        j                  j                               j#                         }
|s>d}
t%        |	t&              rt         j                  d|	       nt         j)                  d       t        |||	|
      d}	~	ww xY w# | xj                  dz  c_        w xY w)z@Install entrypoint. Manages output capturing and error handling.r   r0   zInstalling %s ...r/   Nz%srichT)extrar)   )cause	log_lineszpip crashed unexpectedly)r<   isEnabledForr   r   r   r   r   r   info_install_implr   textwrapdedentgetvalueerrorr   	Exception
splitlines
isinstancer   	exception)r"   rT   rU   rV   rW   capture_logscapture_ctxr4   streamexclogss              r$   r(   z*InprocessBuildEnvironmentInstaller.install   s    "..w77LDKK1<L 5D4EK,=D6>R,SG $/xz#:KMKKK+T2	KK1K 9+ 9""<89 98 KK1K99 9 9 9 " 	 KK(9:;LLs64.L9KKO-SD   	%-__V__5F%G%R%R%TD c8,LLs+$$%?@-SD 	 KK1Ksb   ;C& CC(C0C& C	CC#C& &	G4/A4E##G4/B G//G44G7 7Hc                   ddl m} ddlm} ddlm} ddlm} |D cg c]  } ||d       }}|j                  | j                         | j                         }	|	j                  |d      }
| j                  j                  |
j                  j                                |
j                   D cg c]  }|j"                  r| }} ||| j$                  dd	      \  }}|rt'        |       ||	j)                  |
      |j*                  d
d
dddd|j,                  	      }t/        t1        |j2                              } |||      x}rt4        j7                  |       y
y
c c}w c c}w )z$Core build dependency install logic.r   )installed_packages_summary)install_given_reqs)install_req_from_line)buildT)user_supplied)check_supported_wheels)verifyr   NFr{   )rU   roothomewarn_script_locationr}   	pycompilerz   script_executable)pip._internal.commands.installr   pip._internal.reqr   pip._internal.req.constructorsr   pip._internal.wheel_builderr   rB   r!   _make_resolverresolver    prepare_linked_requirements_morerT   valuesrequirements_to_installis_wheelr   r   get_installation_orderr6   r7   r   listlib_dirsr<   r   )r"   rT   rU   r   r   r   r   reqireqsresolverresolved_setrreqs_to_buildr,   build_failures	installedenvsummarys                     r$   r   z0InprocessBuildEnvironmentInstaller._install_impl
  s[   M8H5KWXC&s$?XXT,,-&&(''d'K77%%,,.	

 $;;
1::A
 
 "4,,T4
> (88&++L9;;!& $44
	  d6??340C@@7@KK  AG Y
s   E!/E&E&c                ~    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    r   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  sJ     	OI8^^<<))#( %#!!. 
 	
r&   N)r    r   rt   r   r   r   r#   zSequence[InstallRequirement]rm   intra   rb   rc   )rT   rd   rU   r
   ra   rb   )ra   r   )rf   rg   rh   ri   r%   r(   r   r   rj   r&   r$   rl   rl      s    . ;='
 '
 $	'

  '
 8'
 '
 
'
R2#2 2
 2 +2 
2h+!Z
r&   rl   )4
__future__r   r>   r9   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   	getLoggerrf   r<   r   rl   rj   r&   r$   <module>r      s    "  
  . ? "    / F  3 @ 5 : 6.@I@: 
		8	$s slr
 r
r&   