
    dh"                    h   d Z ddlmZ ddlZddlZddlZddlZddlZddl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 dd
lmZmZ ddlmZmZmZ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%m&Z& ddl'm(Z(m)Z) ddl*m+Z, ddl*m-Z-m.Z. ddl/m0Z0 dgZ1 ejd                  e3      Z4 G d de      Z5y)z(Base Command class, and related routines    )annotationsN)Values)Callable)reconfigure)	traceback)
cmdoptions)CommandContextMixIn)ConfigOptionParserUpdatingDefaultsHelpFormatter)ERRORPREVIOUS_BUILD_DIR_ERRORUNKNOWN_ERRORVIRTUALENV_NOT_FOUND)
BadCommandCommandErrorDiagnosticPipErrorInstallationErrorNetworkConnectionErrorPreviousBuildDirError)check_path_owner)BrokenStdoutLoggingErrorsetup_logging)get_prognormalize_path)TempDirectoryTypeRegistry)global_tempdir_managertempdir_registry)running_under_virtualenvCommandc                       e Zd ZU dZded<   dZded<   dd fdZddZdd	Zdd
Z	ddZ
ddZddZddZddZ xZS )r    strusageFboolignore_require_venvc           	        t         |           || _        || _        t	        | j
                  t                d| t               d|| j                  |      | _	        d | _
        | j                  j                          d}t        j                  | j                  |      | _        t        j                   t        j"                  | j                        }| j                  j%                  |       | j'                          y )N F)r#   prog	formatteradd_help_optionnamedescriptionisolatedz Options)super__init__r+   summaryr
   r#   r   r   __doc__parserr   
capitalizeoptparseOptionGroupcmd_optsr   make_option_groupgeneral_groupadd_option_groupadd_options)selfr+   r0   r-   optgroup_namegen_opts	__class__s         `/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.pyr/   zCommand.__init__2   s    	(**J<q'35!
 9=  99//12(; ,,T[[-H //$$KK
 	$$X.    c                     y N r;   s    r?   r:   zCommand.add_optionsP   s    r@   c                     t        |d      rJ y)zf
        This is a no-op so that commands by default do not do the pip version
        check.
        no_indexN)hasattr)r;   optionss     r?   handle_pip_version_checkz Command.handle_pip_version_checkS   s     7J////r@   c                    t         rB   )NotImplementedError)r;   rH   argss      r?   runzCommand.run\   s    !!r@   c                    d fd}j                   rt        j                  d        |       S 	  |       }t        |t              sJ |S # t
        $ rA}t        j                  d|ddi       t        j                  dd       t        cY d }~S d }~wt        $ rE}t        j                  t        |             t        j                  dd       t        cY d }~S d }~wt        t        t         f$ rE}t        j                  t        |             t        j                  dd       t        cY d }~S d }~wt"        $ r=}t        j                  d|       t        j                  dd       t        cY d }~S d }~wt$        $ r[ t'        d	t(        j*                  
       |t,        j.                  k  r$t1        j2                  t(        j*                  
       t        cY S t4        $ r5 t        j                  d       t        j                  dd       t        cY S t6        $ r  t        j                  dd       t8        cY S w xY w)Nc                 x    	 j                         j                         S # j                         w xY wrB   )rM   rI   )rL   rH   r;   s   r?   
_inner_runz(Command._run_wrapper.<locals>._inner_run`   s3    7xx.--g6--g6s   & 9T)show_localsz%srich)extrazException information:)exc_infoz ERROR: Pipe to stdout was broken)filezOperation cancelled by userz
Exception:)returnint)
debug_moderich_tracebackinstall
isinstancerW   r   loggererrordebugr   r   criticalr"   r   r   r   r   r   r   printsysstderrloggingDEBUGr   	print_excKeyboardInterruptBaseExceptionr   )r;   level_numberrH   rL   rP   statusexcs   ` ``   r?   _run_wrapperzCommand._run_wrapper_   s   	7 ""t4<,	!\Ffc***M! 	LLs64.L9LL1DLAL$ 	,OOCH%LL1DLA++"
 	
 OOCH%LL1DLAL 	OOD#&LL1DLAL' 	 43::Fw}},##4L  	OO9:LL1DLAL 	!OOL4O8  	!sf   A 	I6BII":C"I"I9:D93I9I2E=7I=A$I#:I%IIc                8    | j                   j                  |      S rB   )r2   
parse_argsr;   rL   s     r?   rm   zCommand.parse_args   s    {{%%d++r@   c                    	 | j                         5  | j                  |      cd d d        t        j                          S # 1 sw Y   nxY w	 t        j                          y # t        j                          w xY wrB   )main_context_mainrc   shutdownrn   s     r?   mainzCommand.main   sg    	""$ (zz$'( ( ( ( ( Gs!   A# A	A# A
A# #A9c                r   | j                  t                     | _        | j                  t                      | j                  |      \  }}|j                  |j
                  z
  | _        |j                  rd| _        t        |d      r'|j                  dk(  r| j                  dk\  rdnd|_	        t        |j                         t        | j                  |j                  |j                        }t        |j                        t        t         j"                        z  }|r.t$        j'                  d	d
j)                  t+        |                   |j,                  r@dt.        j0                  vr.t$        j3                  d       t5        j6                  t8               |j:                  rdt.        j0                  d<   |j<                  r,dj)                  |j<                        t.        j0                  d<   |j>                  rD| j@                  s8tC               s.t$        j3                  d       t5        j6                  tD               |jF                  rVtI        |jF                        |_#        tK        |jF                        s't$        j'                  d|jF                         d |_#        | jM                  |||      S )N   progress_barautor   onoff)no_color)	verbosityrz   user_log_filez/The following features are always enabled: %s. z, _PIP_RUNNING_IN_SUBPROCESSzAThe --python option must be placed before the pip subcommand name1PIP_NO_INPUTr'   PIP_EXISTS_ACTIONz2Could not find an activated virtualenv (required).zThe directory '%s' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.)'enter_contextr   r   rm   verbosequietr{   rX   rG   rv   r   rz   r   logsetfeatures_enabledr   ALWAYS_ENABLED_FEATURESr\   warningjoinsortedpythonosenvironr_   ra   exitr   no_inputexists_actionrequire_venvr%   r   r   	cache_dirr   r   rk   )r;   rL   rH   rh   always_enabled_featuress        r?   rq   zCommand._main   s    !% 2 23C3E F 	134- !7==8DN7N+0D0D0N+/>>Q+>4EG W--.$nn%%!++
 #&g&>&>"?#..C
 #
 #NNA		&!89: >>:"**LOOS HHUO ),BJJ~&  .1hhw7L7L.MBJJ*+(@(@+- TU-. .w/@/@ AG#G$5$56*
 %% %)!  w==r@   c                    i S )zO
        map of names to handler actions for commands with sub-actions
        rC   rD   s    r?   handler_mapzCommand.handler_map   s	     	r@   )F)r+   r"   r0   r"   r-   r$   rV   None)rV   r   )rH   r   rV   r   )rH   r   rL   	list[str]rV   rW   )rh   rW   rH   r   rL   r   rV   rW   )rL   r   rV   ztuple[Values, list[str]])rL   r   rV   rW   )rV   z.dict[str, Callable[[Values, list[str]], None]])__name__
__module____qualname__r#   __annotations__r%   r/   r:   rI   rM   rk   rm   rs   rq   r   __classcell__)r>   s   @r?   r   r   .   sG    E3O %%<0"7!r,K>Zr@   )6r1   
__future__r   rc   logging.configr4   r   ra   r   r   typingr   pip._vendor.richr   rY   pip._internal.clir   !pip._internal.cli.command_contextr	   pip._internal.cli.parserr
   r   pip._internal.cli.status_codesr   r   r   r   pip._internal.exceptionsr   r   r   r   r   r   pip._internal.utils.filesystemr   pip._internal.utils.loggingr   r   pip._internal.utils.miscr   r   pip._internal.utils.temp_dirr   TempDirRegistryr   r   pip._internal.utils.virtualenvr   __all__	getLoggerr   r\   r   rC   r@   r?   <module>r      s    . "    	 
    ( 8 ( A V   < O = U Q C+			8	$F! Fr@   