
    cX                     0   d Z ddlmZ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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 ddlmZ ddlZddlmZ ddlmc m c m!Z! ddl"mc m c m#Z# ddl$mc m c m%Z% ddl&mc m c m'Z' ddl(mc m c m)Z) ddl*mc m c m+Z+ ddl,mc m c m-Z- ddl.mc m c m/Z/ ddl0mc m c m1Z1 ddl2mc m c m3Z3 ddl4mc m c m5Z5 ddl6mc m c m7Z7 ddl8mc m c m9Z9 ddl:mc m c m;Z; ddl<mc m c m=Z= d Z>d Z?d Z@dS )z4The ``main`` function chooses and runs a subcommand.    )absolute_importprint_functionN)ArgumentParser	REMAINDER)UI_MODE_TEXT_ASK_QUESTIONS(UI_MODE_TEXT_DEVELOPMENT_DEFAULTS_OR_ASK_all_ui_modes)__version__)push_verbose_loggerpop_verbose_logger)ALL_COMMAND_TYPES)DEFAULT_BUILDER_IMAGE)RequirementsRegistry)_hash_algorithms)handle_bugsc                 $   t          dd          }|                    d          }|                    dddt          	           |                    d
ddd           d d dfd	}d }|                    dd          } |           |                    dddd            |                    dddd            |                    ddddd            |                    t          j                   |                    dd           } ||d!           |                    d"d#d d$d%&           |                    d'd(d t          )           |                    t          j                   |                    d*d+          }|                    d,dd-d            |                    d.dd/d             ||           |                    t          j                   |                    d0d1          } |           |                    t          j                   t          j        sB|                    d2d3          } ||           |                    t          j                   |                    d4d5          } |           |                    d6d78           |                    d9dd:;           |                    t          j                   |                    d<d=          }|                    d6d78           |                    d>d?d d$)           |                    t           j                   |                    d@dA          } |           |                    dBdCddDd            |                    dEdFdGdHI           |                    dJdKdLdMI           |                    dNdOdPdQI           |                    dRdSdTdUg dVW           |                    t"          j                   |                    dXdY          } |           |                    dZd[           |                    d\dd];           |                    d^d d_`           |                    dEdFdGdHI           |                    dJdKdLdMI           |                    dNdOdPdQI           |                    t$          j                   |                    dadb          } |           |                    dJdcd dd`           |                    dedfdg`           |                    dhdi                    t(                    dj`           |                    dkd dldmn           |                    t*          j                   |                    dodp          } |           |                    dqdrd t          )           |                    dsdtd duv            |           |                    t,          j                   |                    dwdx          } |            |           |                    dydzd t          )           |                    t,          j                   |                    d{d|          } |            |           |                    t,          j                   |                    d}d~          } |           |                    ddd t          )            |           |                    t,          j                   |                    dd          } |            |           |                    ddd t          )           |                    t,          j                   |                    dd          } |            |           |                    ddd            |                    ddd            |                    ddd            |                    ddd t8                     |                    ddd            |                    t:          j                   |                    dd          } |            |           |                    ddd            |                    t:          j                   |                    dd          } |            |           |                    t:          j                   t=                                                      }tA          tC          d |                    }d }|                    dd          } |            |            ||           |                    ddd |           |                    tD          j                   |                    dd          } |            |           |                    ddd            |                    tD          j                   |                    dd          } |            |           |                    tD          j                   d }	|                    dd          } |            |	|            ||d           |                    tF          j                   |                    dd          } |            ||d           |                    tF          j                   |                    dd          } |           |                    tF          j$                   |                    dd          } |            ||d           |                    d6d8           |                    tF          j%                   |                    dd          } |            ||d           |                    tF          j&                   |                    dd          } |            ||d           |                    tF          j'                   |                    dd          } |            ||d           |                    tF          j(                   |                    dd          } |            |            |	|           |                    tF          j)                   |                    dd          } |            |           |                    ddd;           |                    ddd d)           |                    tF          j*                   |                    dd          } |            |           |                    tF          j+                   d }
|                    ddì          } |            |            |
|           |                    tF          j,                   |                    ddŬ          } |            |            |
|           |                    tF          j-                   |                    ddǬ          } |            |           |                    tF          j.                   dȄ }|                    ddʬ          } |           tA          t^                    dgz   }|0                    d̦           |                    dd|dϬЦ            ||            |           |                    ddddӬԦ           |                    dddd׬Ԧ           |                    d"dd٬I           |                    tb          j        d ڦ           |                    ddܬ          } |            ||           |                    tb          j                   |                    ddެ          } |           |                    tb          j2                   |                    dd          } |           |                    tb          j                   tg          |           dk     r=ti          dtj          j6                   |7                    tj          j6                   dS 	 |8                    | dd                    }n# tr          $ r}|j:        cY d }~S d }~ww xY w|j;        r ty          j=                    d          }|>                    tx          j?                   ty          j@        tj          j6                  }|A                    |           t          |           	 d>|v rM|jC        Ft          jE        F                    t          jE        G                    |jC                            |_C        |                    |          |j;        rt                       S S # |j;        rt                       w w xY w)Nanaconda-projectz(Actions on projects (runnable projects).)progdescriptionzSub-commands)helpz-vz	--versionversion)actionr   z	--verbose
store_trueFzshow verbose debugging details)r   defaultr   c                 8    |                      dddd           d S )Nz--directoryPROJECT_DIR.zQProject directory containing anaconda-project.yml (defaults to current directory)metavarr   r   add_argumentpresets    Blib/python3.11/site-packages/anaconda_project/internal/cli/main.pyadd_directory_argz9_parse_args_and_run_subcommand.<locals>.add_directory_arg3   s9    M$1$'!t 	 	v 	v 	v 	v 	v    c                 :    |                      ddd dd           d S )Nz
--env-specENVIRONMENT_SPEC_NAMEstorez2An environment spec name from anaconda-project.ymlr   r   r   r   r    r"   s    r$   add_env_spec_argz8_parse_args_and_run_subcommand.<locals>.add_env_spec_arg9   s<    L$;$(#*!U	 	 	W 	W 	W 	W 	Wr&   Tc                 L    |             |            t          t                    }|                    t                     |                     ddt
          t          ddd                    t                    z              |r|                     ddd dd	
           d S d S )Nz--modeMODEr)   zOne of z, )r   r   choicesr   r   	--commandCOMMAND_NAMEzQA command name from anaconda-project.yml (env spec for this command will be used)r*   )listr	   remover   r!   r   join)r#   include_commandall_supported_modesr%   r+   s      r$   add_prepare_argsz8_parse_args_and_run_subcommand.<locals>.add_prepare_args@   s    &!!!   "=11""#=>>>H$*$L$1#*!*TYY}-E-E!E 	 	G 	G 	G  	j&h   j j j j j	j 	jr&   c                 <    |                      ddd|dd           d S )Nz-nz--namer(   r)   z6Name of the environment spec from anaconda-project.yml)r   requiredr   r   r    )r#   r8   s     r$   add_env_spec_name_argz=_parse_args_and_run_subcommand.<locals>.add_env_spec_name_argT   s?    D$$;%-#*!Y 	 	[ 	[ 	[ 	[ 	[r&   initz9Initialize a directory with default project configurationz--with-anaconda-packagez4Add the 'anaconda' metapackage to the packages list.)r   r   r   z--empty-environmentzC[DEPRECATED] Do not add the default package set to the environment.z-yz--yesz&Assume yes to all confirmation prompts)mainrunz.Run the project, setting up requirements first)r4   commandr0   ?z(A command name from anaconda-project.yml)r   r   nargsr   extra_args_for_commandEXTRA_ARGS_FOR_COMMANDr   r   r?   preparez=Set up the project requirements, but does not run the projectz--allzPrepare all environmentsz	--refreshz#Remove and recreate the environmentcleanzHRemoves generated state (stops services, deletes environment files, etc)activatezHSet up the project and output shell export commands reflecting the setuparchivezDCreate a .zip, .tar.gz, or .tar.bz2 archive with project files in itfilenameARCHIVE_FILENAME)r   z--pack-envszAExperimental: Package env_specs into the archive using conda-packr   r   	unarchivezDUnpack a .zip, .tar.gz, or .tar.bz2 archive with project files in it	directoryDESTINATION_DIRECTORYuploadz$Upload the project to Anaconda Cloudz-pz	--privatezUpload a private projectz-sz--siteSITEzSelect site to user   r   z-tz--tokenTOKENz1Auth token or a path to a file containing a tokenz-uz--userUSERNAMEz*User account, defaults to the current userz--suffixSUFFIXz0Project archive suffix (.tar.gz, .tar.bz2, .zip).tar.bz2)z.tar.gzrS   z.zip)r   r   r   r.   downloadz(Download the project from Anaconda CloudprojectzThe project to download as <username>/<projectname>. If <projectname>has spaces inclose everything in quotes "<username>/<project name>".If specified as <projectname> then the logged-in username is used.z--no-unpackz"Do not unpack the project archive.z--parent_dirzZDownload archive to specific directory, otherwise downloaded to current working directory.)r   r   	dockerizez-Build a docker image of the Anaconda Project.z--tagzTag of the output docker image in the format name:tag. Default: "<project-name>:latest", where <project-name> is taken from the name tag in the anaconda-project.yml file.r/   r   zSelect the command to run. If unspecified the "default" command is run.
The default command is defined as either the command named "default" (if any) or (otherwise)  the first command specified in the anaconda-project.yml file.z--builder-imagez	{}:latestzThe s2i builder image
build_args*zOptional arguments for the s2i build command. See the output of "s2i build --help" for the available arguments. It is recommended to include a -- separator before supplying these arguments.)r   r?   r   zadd-variablez2Add a required environment variable to the projectvars_to_addVARS_TO_ADDz	--defaultDEFAULT_VALUEz.Default value if environment variable is unsetr   zremove-variablez/Remove an environment variable from the projectvars_to_removeVARS_TO_REMOVEzlist-variablesz!List all variables on the projectzset-variablez?Set an environment variable value in anaconda-project-local.ymlvars_and_valuesVARS_AND_VALUESzunset-variablezCUnset an environment variable value from anaconda-project-local.ymlvars_to_unsetVARS_TO_UNSETzadd-downloadz2Add a URL to be downloaded before running commandsfilename_variableENV_VAR_FOR_FILENAMEr   r   download_urlDOWNLOAD_URLz
--filenamez5The name to give the file/folder after downloading it)r   r   z--hash-algorithmz#Defines which hash algorithm to use)r   r   r.   z--hash-valuez1The expected checksum hash of the downloaded filezremove-downloadz:Remove a download from the project and from the filesystemzlist-downloadsz!List all downloads on the projectc                     | j         S Nname)ss    r$   <lambda>z0_parse_args_and_run_subcommand.<locals>.<lambda>  s     r&   c                 6    |                      ddd            d S )Nz
--variableENV_VAR_FOR_SERVICE_ADDRESSrd   r    r"   s    r$   add_service_variable_namezA_parse_args_and_run_subcommand.<locals>.add_service_variable_name
  s%    L2OY]^^^^^r&   zadd-servicez5Add a service to be available before running commandsservice_typeSERVICE_TYPE)r   r   r.   zremove-servicez!Remove a service from the projectvariableSERVICE_REFERENCEzlist-servicesz$List services present in the projectc                     |                      ddd           |                      ddddd	
           |                      ddd t                     d S )N--pipr   z)Install the requested packages using pip.rI   z-cz	--channelCHANNELappendzChannel to search for packages)r   r   r   packagesPACKAGESrB   )r!   r   r"   s    r$   add_package_argsz8_parse_args_and_run_subcommand.<locals>.add_package_args  sr    GL?jkkkD'$-#+!A	 	 	C 	C 	C
 	J
DPYZZZZZr&   zadd-env-specz)Add a new environment spec to the project)r8   zremove-env-specz+Remove an environment spec from the projectzlist-env-specsz*List all environment specs for the projectzexport-env-specz4Save an environment spec as a conda environment fileENVIRONMENT_FILElockz+Lock all packages at their current versionsunlockzRemove locked package versionsupdatez,Update all packages to their latest versionszadd-packagesz/Add packages to one or all project environmentszremove-packagesz4Remove packages from one or all project environmentsru   z+Uninstall the requested packages using pip.rx   PACKAGE_NAME+zlist-packagesz/List packages for an environment on the projectc                 8    |                      ddd d           d S )N	platformsPLATFORM_NAMEr   rB   r    r"   s    r$   add_platforms_listz:_parse_args_and_run_subcommand.<locals>.add_platforms_list^  s&    K$VYZZZZZr&   zadd-platformsz0Add platforms to one or all project environmentszremove-platformsz5Remove platforms from one or all project environmentszlist-platformsz0List platforms for an environment on the projectc                 6    |                      ddd           d S )Nrj   NAMEzCommand name used to invoke itrO   r    r"   s    r$   add_command_name_argz<_parse_args_and_run_subcommand.<locals>.add_command_name_argr  s$    FF9YZZZZZr&   zadd-commandz Add a new command to the projectaskconda_app_entryz--typer)   zCommand type to add)r   r.   r   z--supports-http-optionssupports_http_optionsz2The command supports project's HTTP server options)destr   r   z--no-supports-http-optionsstore_falsez; The command does not support project's HTTP server optionsCOMMANDz#Command line or app filename to add)r;   r   zremove-commandz!Remove a command from the projectzlist-default-commandz,List only the default command on the projectzlist-commandsz List the commands on the project   zMust specify a subcommand.)file   anaconda_project_verboseri   )stream)T)Ir   add_subparsersr!   r   
add_parserset_defaultsr:   r;   r   r<   rC   rD   anaconda_project_beta_test_moderE   rF   rJ   rM   rT   formatr   rV   variable_commandsmain_addmain_remove	main_listmain_set
main_unsetr   download_commandsr   list_service_typesr1   mapservice_commandsenvironment_commandsmain_list_env_specsmain_export	main_lockmain_unlockmain_updatemain_add_packagesmain_remove_packagesmain_list_packagesmain_add_platformsmain_remove_platformsmain_list_platformsr   r2   command_commandsmain_defaultlenprintsysstderrprint_usage
parse_args
SystemExitcodeverboselogginggetLoggerClasssetLevelDEBUGStreamHandler
addHandlerr   rK   ospathrealpathabspathr   )argvparser
subparsersr6   r9   r#   service_typesservice_choicesro   rz   r   r   command_choicesargseloggerhandlerr%   r+   s                    @@r$   _parse_args_and_run_subcommandr   +   s   !3AklllF&&N&;;J
k)WMMM
L%Nnooov v vW W Wj j j j j j j([ [ [ ""60k"llFf
1+S $  & & & -+b $  & & & glAiswxxx
TY'''""5/_"``FVU3333
	 . $!G	  I I I
 0:R\`hqrrr
SX&&&""93r"ssF
;U_cddd
L?dnrsssV
W\***""7(r # t tFf
UZ(((+ 0&&z,v ' x x   ///""9(n # p pFf

,>???
+,  - - -
 W\***"";(n # p pF

,>???
-DdZ]^^^
Y^,,,""82X"YYFf
k,E_imnnn
h=QRRR
i?rsss
h
Amnnn

 (O * ? ? ?	  A A A
 V[)))"":4^"__Ff
	]  ^ ^ ^ lAefff
i  k k k h=QRRR
i?rsss
h
Amnnn
X]+++"";5d"eeFf
 $I  J J J H  I I I ) + 2 23H I I4  6 6 6  $!h  i i i Y^,,,"">8l"mmFV
}dR[\\\
 / $M  O O O f
.7888""#4;l"mmFVf
(2BDXabbb
.:;;;""#3:]"^^FVf
.8999"">(i # k kFV
)3DdZcdddf
.7888""#3(m # o oFVf
$V_```
.9:::"">8l"mmFfV
+5KUYZZZ
MMM
+blpqqq
*B $ 0  2 2 2 -`jnooo
.7888""#4;w"xxFfV
+5KUYZZZ
.:;;;""#3:]"^^FfV
.8999(**==??M3//??@@O_ _ _ ""=7n"ooFfVf%%%
Vefff
-6777""#3:]"^^FfV

,?NNN
-9:::""?9_"``FfV
-7888[ [ [ "">8c"ddFfV&40000
1:;;;""#4;h"iiFf&40000
1=>>>""#3:f"ggFf
1EFFF""#4;q"rrFf&51111

,>???
1=>>>""60]"^^Ff&51111
1;<<<""82R"SSFf&51111
1=>>>""82`"aaFf&51111
1=>>>"">8i"jjFfVV
1CDDD""#4;q"rrFfV
;hiii

NDPSTTT
1FGGG""?9j"kkFfV
1DEEE[ [ [ ""?9k"llFfVv
1DEEE""#5<s"ttFfVv
1GHHH""#3:l"mmFfV
1EFFF[ [ [ ""=7Y"ZZFf,--7O,---
/Pefff   V
14+Q  S S S 44,Z  \ \ \ 	9;`aaa
-2$OOO""#3:]"^^Ff   
-9:::""#9@n"ooFf
-:;;;""?9["\\Ff
-7888 4yy1} *<<<<
+++q  abb**   v | $*'(**1KLLL&&&'sz:::'"""F###! $ 	O4> 	OW--bgoodn.M.MNNDNyy< 	!    	!4< 	!    	!s9   DAD- D-
AED7AED=AEEAEGA%AI IAI&c                  Z    t          j                     t          t          j                  S rh   )r   _enter_beta_test_moder   r   r    r&   r$   _main_without_bug_handlerr     s!    *,,,)#(333r&   c                  B    dt           i} t          t          d|           S )zanaconda-project command line tool Conda-style entry point.

    Conda expects us to take no args and return an exit code.
    r   r   )program_namedetails_dict)r   r   r   )detailss    r$   r;   r;     s&    
 '"G0?Q`ghhhhr&   )A__doc__
__future__r   r   r   r   r   argparser   r   /anaconda_project.internal.cli.prepare_with_moder   r   r	   r   r
   r   anaconda_project.verboser   r   anaconda_project.projectr   anaconda_project.dockerr   /anaconda_project.requirements_registry.registryr   <anaconda_project.requirements_registry.requirements.downloadr   )anaconda_project.internal.cli.bug_handlerr   "anaconda_project.internal.cli.initinternalclir:   !anaconda_project.internal.cli.runr<   %anaconda_project.internal.cli.preparerC   #anaconda_project.internal.cli.cleanrD   %anaconda_project.internal.cli.archiverF   'anaconda_project.internal.cli.unarchiverJ   $anaconda_project.internal.cli.uploadrM   &anaconda_project.internal.cli.downloadrT   'anaconda_project.internal.cli.dockerizerV   &anaconda_project.internal.cli.activaterE   /anaconda_project.internal.cli.variable_commandsr   /anaconda_project.internal.cli.download_commandsr   .anaconda_project.internal.cli.service_commandsr   2anaconda_project.internal.cli.environment_commandsr   .anaconda_project.internal.cli.command_commandsr   r   r   r;   r   r&   r$   <module>r      s   ; : 6 6 6 6 6 6 6 6  				 



 . . . . . . . .v v v v v v v v v v 3 3 3 3 3 3 L L L L L L L L 6 6 6 6 6 6 9 9 9 9 9 9 P P P P P P Y Y Y Y Y Y     A A A A A A 1 1 1 1 1 1 1 1 1 1 1 1 / / / / / / / / / / / / 7 7 7 7 7 7 7 7 7 7 7 7 3 3 3 3 3 3 3 3 3 3 3 3 7 7 7 7 7 7 7 7 7 7 7 7 ; ; ; ; ; ; ; ; ; ; ; ; 5 5 5 5 5 5 5 5 5 5 5 5 9 9 9 9 9 9 9 9 9 9 9 9 ; ; ; ; ; ; ; ; ; ; ; ; 9 9 9 9 9 9 9 9 9 9 9 9 K K K K K K K K K K K K K K K K K K K K K K K K I I I I I I I I I I I I Q Q Q Q Q Q Q Q Q Q Q Q I I I I I I I I I I I IC! C! C!L4 4 4
i i i i ir&   