
    \Ziz-                       S r SSKJr  SSKrSSKrSSKrSSKJrJr  SSKJr	  SSK
Jr  SSKJr  SSKJr  S	S
KJr  S	SKJr  S	SKJrJrJr  S	SKJrJr  S	SKJr  SSKJrJr  SSK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  SSK4J5r6  SSK7J5r8  SSK9J5r:  SSK;J5r<  SSK=J5r>  SSK?J5r@  SSKAJ5rB  SSKCJ5rD  SSKEJ5rF  SSKGJ5rH  SSKIJ5rJ  SSKKJ5rL  SSKMJ5rN  SSKOJ5rP  SSKQJ5rR  SSKSJ5rT  SSKUJ5rV  SSKWJ5rX  SSKYJ5rZ  SSK[J5r\  \" \]5      r^\R                  " SS5      r`\R                  " SS5      ra1 Skrb S"S jrcS"S jrdS#S jreS$S jrf " S S\	5      r " S S\R                  5      rhS riS rjS  rkS%S! jrlg)&z%Conda command line interface parsers.    )annotationsN)SUPPRESSRawDescriptionHelpFormatter)ArgumentParser)import_module)	getLogger)Popen   )__version__)dals)contextsys_rc_pathuser_rc_path)
isiterableon_win)NULL   )ExtendConstActionNullCountAction)add_output_and_prompt_optionsadd_parser_channels add_parser_create_install_updateadd_parser_default_packagesadd_parser_helpadd_parser_jsonadd_parser_knownadd_parser_networking"add_parser_package_install_optionsadd_parser_platformadd_parser_prefixadd_parser_prefix_to_groupadd_parser_pruneadd_parser_pscheckadd_parser_show_channel_urlsadd_parser_solveradd_parser_solver_modeadd_parser_update_modifiersadd_parser_verbose)configure_parser%z%%>   envruninfoinitlistcleanconfigcreateexportremoverenamesearchupdatecompareinstallnoticespackageupgradeactivatecommands	uninstall
deactivater   c                     [        SSS0U D6n[        U5        UR                  SS[        [        S9  UR                  SS[        SS9  U$ )	NdescriptionzSconda is a tool for managing and deploying applications, environments and packages.z--json
store_true)actiondefaulthelpz--no-pluginsz2Disable all plugins that are not built into conda. )r   r(   add_argumentr   r   )kwargs
pre_parsers     8lib/python3.13/site-packages/conda/cli/conda_argparse.pygenerate_pre_parserrL   c   sr     & J z"	   A	       c            	     N   [        S0 U D6nUR                  SSSS[         3SS9  UR                  SSS	S
[        SS9n[        U5        [        U5        [        U5        [        U5        [        U5        [        U5        [        U5        [        U5        [        U5        [        U5        [        U5        [!        U5        [#        U5        [%        U5        ['        U5        [)        U5        [+        US/S9  [-        U5        [/        U5        [1        U5        [3        US/S9  U$ )Nz-Vz	--versionversionzconda z'Show the conda version number and exit.)rD   rO   rF   COMMANDr>   z=The following built-in and plugins subcommands are available.cmdT)metavartitlerB   destrD   requiredr?   )aliasesr<   rG   )rL   rH   r   add_subparsers_GreedySubParsersActionconfigure_parser_activateconfigure_parser_cleanconfigure_parser_commandsconfigure_parser_compareconfigure_parser_configconfigure_parser_createconfigure_parser_deactivateconfigure_parser_envconfigure_parser_exportconfigure_parser_infoconfigure_parser_initconfigure_parser_installconfigure_parser_listconfigure_parser_noticesconfigure_parser_packageconfigure_parser_pluginsconfigure_parser_removeconfigure_parser_renameconfigure_parser_runconfigure_parser_searchconfigure_parser_update)rI   parsersub_parserss      rK   generate_parserrp   {   s    *6*F
&6   ''S& ( K k*;'k*[)K(K(,%K(+&+&[)+&[)[)[)K+?K(%K(K)=MrM   c                F   [        U SS5      =n(       ap  [        R                  R                  UR                  5        UR                  [        U SU 5      5      n[        R                  R                  UR                  5        U$ U R                  R                  SS5      u  pE[        U5      nUR                  S5      S   R                  SS5      n[        R                  R                  U5        [        Xe5      " X5      n[        R                  R                  U5        U$ )	zt
Serves as the primary entry point for commands referred to in this file and for
all registered plugin subcommands.
_plugin_subcommandN_args.r   main_ )getattrr   plugin_managerinvoke_pre_commandsnamerD   invoke_post_commandsfuncrsplitr   splitreplace)argsrn   plugin_subcommandresultmodule_name	func_namemodulecommands           rK   do_callr      s     $D*>EEE 	223D3I3IJ"))'$*FG334E4J4JK M "&!1!1#q!9{+##C(,44WbA227;+D933G<MrM   c                v    [        U R                  R                  S   R                  R	                  5       5      $ Nr   )tuple_subparsers_group_actionschoiceskeys)rn   s    rK   find_builtin_commandsr      s/     ##2215==BBDEErM   c                  P   ^  \ rS rSrSS.U 4S jjrU 4S jrSS.U 4S jjrS	rU =r$ )
r      T)add_helpc               |   > UR                  S[        5        [        TU ]  " USS0UD6  U(       a  [	        U 5        g g )Nformatter_classr   F)
setdefaultr   super__init__r   )selfr   r   rI   	__class__s       rK   r   ArgumentParser.__init__   s<    +-HI$99&9D! rM   c                Z  > [        U[        5      (       aP  [        UR                  [        5      (       a1  [        [	        UR                  R                  5       5      5      Ul        UR                  b)  [        U5      (       a  U H  n[        TU ]!  X5        M     g [        TU ]!  X5        g N)	
isinstancerX   r   dictsorteditemsr   r   _check_value)r   rD   valueelementr   s       rK   r   ArgumentParser._check_value   s    f566:NND<
 <
 "&)=)=)?"@AFN>>%*U*;*; $V5 ! G /rM   N)override_argsc                  > [         TU ]  " U0 UD6nU=(       d    0 R                  5        H5  u  pVU[        Ld  M  [	        XE[        5      [        L d  M)  [        XEU5        M7     U$ r   )r   
parse_argsr   r   rx   setattr)r   r   r   rI   parsed_argsr{   r   r   s          rK   r   ArgumentParser.parse_args   sY    g($9&9)/R668KDD W[%E%M51 9 rM   rG   )	__name__
__module____qualname____firstlineno__r   r   r   __static_attributes____classcell__r   s   @rK   r   r      s$    '+ " "0 /3  rM   c                  6   ^  \ rS rSrSrSU 4S jjrS rSrU =r$ )rX      zA custom subparser action to conditionally act as a greedy consumer.

This is a workaround since argparse.REMAINDER does not work as expected,
see https://github.com/python/cpython/issues/61252.
c                  > [         TU ]  XX45        U R                  US      n[        USS5      (       aF   [        U[        R
                  5      n[        U[        R
                  5        [        U5      Ul	        g g ! [         a    Sn N f = f)Nr   greedyFrG   )
r   __call___name_parser_maprx   argparse_UNRECOGNIZED_ARGS_ATTRdelattrAttributeErrorr   rs   )r   rn   	namespacevaluesoption_stringunknownr   s         rK   r    _GreedySubParsersAction.__call__   s    FB&&vay1 68U++!)X-M-MN	8#C#CD
 $GnIO , " s   4A= =BBc                ,    [        U R                  S S9$ )zDSort actions for subcommands to appear alphabetically in help blurb.c                    U R                   $ r   )rT   )rD   s    rK   <lambda>9_GreedySubParsersAction._get_subactions.<locals>.<lambda>   s    rM   )key)r   _choices_actions)r   s    rK   _get_subactions'_GreedySubParsersAction._get_subactions   s    d++1KLLrM   rG   r   )	r   r   r   r   __doc__r   r   r   r   r   s   @rK   rX   rX      s    -"M MrM   rX   c                <    [         (       a  [        O[        " X5      $ r   )r   	_exec_win
_exec_unixexecutable_argsenv_varss     rK   _execr     s    IZ/KKrM   c                   [        XS9n UR                  5         [        R
                  " UR                  5        g ! [         a    UR                  5          N=f = f! [        R
                  " UR                  5        f = f)N)r+   )r	   communicateKeyboardInterruptwaitsysexit
returncode)r   r   ps      rK   r   r     sY    o,A	 	  	 	s!   < AA AA "A>c                8    [         R                  " U S   X5        g r   )osexecvper   s     rK   r   r     s    JJq!?=rM   c                   [         R                  R                  5       nUR                  5        H  u  p#U[        ;   a$  [
        R                  [        SU S35      5        M3  U R                  UUR                  UR                  SS9nUR                  (       a  UR                  U5         [        U5        OSUl        UR                  US9  M     g! [        R                   a     N*f = f)z
For each of the provided plugin-based subcommands, we'll create
a new subparser for an improved help printout and calling the
:meth:`~conda.plugins.types.CondaSubcommand.configure_parser`
with the newly created subcommand specific argument parser.
z!
                    The plugin 'z' is trying to override the built-in command
                    with the same name, which is not allowed.

                    Please uninstall the plugin to stop seeing this error message.
                    F)rB   rF   r   T)rr   N)r   ry   get_subcommandsr   BUILTIN_COMMANDSlogerrorr   
add_parsersummaryr)   r   r   ArgumentErrorr   set_defaults)ro   plugin_subcommandsr{   r   rn   s        rK   rh   rh     s     !//??A#5#;#;#= ##II!!% '	 '')11"**	 ( 
 --..v6' !FM 	/@AM $>< )) s   +CC)(C))returnr   )r   zargparse.Namespacern   r   )rn   ArgumentParserBaser   ztuple[str, ...])r   None)mr   
__future__r   r   r   r   r   r   r   r   	importlibr   loggingr   
subprocessr	   rw   r   
auxlib.ishr   base.contextr   r   r   common.compatr   r   common.constantsr   actionsr   r   helpersr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   
main_cleanr)   rZ   main_commandsr[   main_comparer\   main_configr]   main_creater^   main_envr`   main_exportra   	main_inforb   	main_initrc   main_installrd   	main_listre   main_mock_activaterY   main_mock_deactivater_   main_noticesrf   main_packagerg   main_removeri   main_renamerj   main_runrk   main_searchrl   main_updaterm   r   r   r   escaped_user_rc_pathescaped_sys_rc_pathr   rL   rp   r   r   _SubParsersActionrX   r   r   r   rh   rG   rM   rK   <module>r     s&   , "  	 
 : #     = = . # 7     * C H F D D > D @ @ F @ M Q F F D D > D D#++C6 !))#t4  0 S0*Z4F' :Mh88 M:L>.BrM   