
    <h/                    N   S r SSKJr  SSKrSSKrSSKrSSKrSSKr	SSK
JrJrJr  SSKJrJrJr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\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r!\"S:X  a  \!RG                  5         gg)zApps for managing kernel specs.    )annotationsN)
JupyterAppbase_aliases
base_flags)BoolDictInstanceListUnicode)Application   )__version__)KernelSpecManager)KernelProvisionerFactoryc                  p    \ rS rSrSr\rSr\" \	5      r
\" SSSS9rS SS00S4\S	   S
.rSS jrSS jrSrg)ListKernelSpecs   zAn app to list kernel specs.z%List installed kernel specifications.Fz7output spec name and location as machine-readable json.T)helpconfigjson_outputdebug)jsonr   c                (    [        X R                  S9$ )N)parentdata_dirr   r   selfs    oC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jupyter_client/kernelspecapp.py_kernel_spec_manager_default,ListKernelSpecs._kernel_spec_manager_default)   s     }}EE    c                  ^  T R                   R                  5       nT R                   R                  5       nT R                  (       d  U(       d  [	        S5        g[        [        US S9S   5      nSU 4S jjn[	        S5        [        UR                  5       US9 H%  u  pV[	        SUR                  U5       S	U 35        M'     U$ [	        [        R                  " S
U0SS95        U$ )Start the application.zNo kernels availableNc                    [        U 5      $ Nlennames    r   <lambda>'ListKernelSpecs.start.<locals>.<lambda>5   s    #d)r"   keyc                   > U S   n[        TR                  5       H   u  p#UR                  U5      (       d  M  X!4s  $    SU4$ )z+sort key function for Jupyter path priorityr   r/   )	enumeratejupyter_path
startswith)itempathidxprefixr   s       r   path_key'ListKernelSpecs.start.<locals>.path_key7   sG    Aw#,T->->#?KCv.. #{* $@ Dz!r"   zAvailable kernels:      kernelspecs   )indent)r4   t.Anyreturnr?   )kernel_spec_managerfind_kernel_specsget_all_specsr   printr(   sorteditemsljustr   dumps)r   pathsspecsname_lenr8   
kernelnamer5   s   `      r   startListKernelSpecs.start,   s    ((::<((668,-6%-CDRHIH" &'$*5;;=h$G 
:++H56d4&AB %H  $**mU3A>?r"    Nr@   r   )r@   zdict[str, t.Any] | None)__name__
__module____qualname____firstlineno____doc__r   versiondescriptionr	   r   rA   r   r   r   flagsr    rM   __static_attributes__rO   r"   r   r   r      sa    &G=K"#45FK  56E
 G$EFr"   r   c                  4  ^  \ rS rSrSr\rSrSrSr	\
" \5      rSS jr\" 5       r\" SSS	S
9rSS jr\" SSSS
9r\" SSSS
9r\" SSSS
9rSSS.r\R/                  \5        S SS00S4S SS00S4S S\R(                  00S4\S   S.rSU 4S jjrS S jrSrU =r$ )!InstallKernelSpecH   z An app to install a kernel spec.a=  Install a kernel specification directory.

    Given a SOURCE DIRECTORY containing a kernel spec,
    jupyter will copy that directory into one of the Jupyter kernel directories.
    The default is to install kernelspecs for all users.
    `--user` can be specified to install a kernel only for the current user.
    z>
    jupyter kernelspec install /path/to/my_kernel --user
    z1jupyter kernelspec install SOURCE_DIR [--options]c                (    [        U R                  S9$ N)r   r   r   s    r   r    .InstallKernelSpec._kernel_spec_manager_defaultY        $--88r"    Tz&Install the kernel spec with this namer   r   c                T    [         R                  R                  U R                  5      $ r&   )osr5   basename	sourcedirr   s    r   _kernel_name_default&InstallKernelSpec._kernel_name_default_   s    ww//r"   F
        Try to install the kernel spec to the per-user directory instead of
        the system or environment directory.
        zSpecify a prefix to install to, e.g. an env.
        The kernelspec will be installed in PREFIX/share/jupyter/kernels/
        z0Replace any existing kernel spec with this name.zInstallKernelSpec.kernel_namezInstallKernelSpec.prefix)r*   r7   user'Install to the per-user kernel registryreplacer7   zEInstall to Python's sys.prefix. Useful in conda/virtual environments.r   )rj   rl   z
sys-prefixr   c                   > [         TU ]  U5        U R                  (       a  U R                  S   U l        g[	        S[
        R                  S9  U R                  S5        g)Parse the command line args.r   zNo source directory specified.filer   N)superparse_command_line
extra_argsrf   rD   sysstderrexitr   argv	__class__s     r   rr   $InstallKernelSpec.parse_command_line   sA    "4(??!__Q/DN2DIIaLr"   c                   U R                   (       a"  U R                  (       a  U R                  S5         U R                  R	                  U R
                  U R                  U R                   U R                  U R                  S9  g! [         a  nUR                  [        R                  :X  aS  [        U[        R                  S9  U R                   (       d  [        S[        R                  S9  U R                  S5        e UR                  [        R                  :X  a6  [        SUR                   3[        R                  S9  U R                  S5        e SnAff = f)r$   zCCan't specify both user and prefix. Please choose one or the other.)kernel_namerj   r7   rl   ro   4Perhaps you want to install with `sudo` or `--user`?r   z$A kernel spec is already present at N)rj   r7   rv   rA   install_kernel_specrf   r|   rl   OSErrorerrnoEACCESrD   rt   ru   EEXISTfilename)r   es     r   rM   InstallKernelSpec.start   s    99II[\	$$88 ,,YY{{ 9   		ww%,,&acjj)yyPWZWaWab		!  ELL(<QZZLIPSPZPZ[		!		s   AB 
ECEE)rf   rP   )r@   str)rx   zNone | list[str]r@   Noner@   r   ) rQ   rR   rS   rT   rU   r   rV   rW   examplesusager	   r   rA   r    r   rf   r|   rg   r   rj   r7   rl   aliasesupdater   rt   r   rX   rr   rM   rY   __classcell__ry   s   @r   r[   r[   H   s   *GKH @E"#459 	I"T0XYK0 D 
F 5,^_G 0,G NN<  !64.15

 !9d"34>

 !8SZZ"89S
 G$E  r"   r[   c                     ^  \ rS rSrSr\rSrSr\	" SSSS9r
\" \" 5       5      r\" \5      rSS	 jrS
S SS00\
R$                  40r\R)                  \R&                  5        SU 4S jjrSS jrSrU =r$ )RemoveKernelSpec   zAn app to remove a kernel spec.z/Remove one or more Jupyter kernelspecs by name.z1jupyter kernelspec remove python2 [my_kernel ...]FTz-Force removal, don't prompt for confirmation.rb   c                *    [        U R                  U S9$ )N)r   r   r   r   s    r   r    -RemoveKernelSpec._kernel_spec_manager_default   s     $--EEr"   fforcec                   > [         TU ]  U5        U R                  (       a$  [        [	        U R                  5      5      U l        gU R                  S5        g)rn   zNo kernelspec specified.N)rq   rr   rs   rE   set
spec_namesrv   rw   s     r   rr   #RemoveKernelSpec.parse_command_line   s9    "4(??$S%9:DOII01r"   c           	        SU R                   l        U R                   R                  5       n[        U R                  5      R                  [        U5      5      nU(       a#  U R                  SSR                  U5      -  5        U R                  (       d  U R                  (       d  [        S5        U R                   HC  nUR                  X35      n[        SUR                  S5       SUR                  S5       35        ME     [        S[        U R                  5      -  5      nUR                  5       R!                  S	5      (       d  g
U R                   H-  n U R                   R#                  U5      n[        SW 35        M/     g
! [$         aj  nUR&                  [&        R(                  :X  aF  [        U[*        R,                  S9  [        S[*        R,                  S9  U R                  S5         S
nANe S
nAff = f)r$   Fz Couldn't find kernel spec(s): %sz, zKernel specs to remove:r:      	zRemove %i kernel specs [y/N]: yNro   zPerhaps you want sudo?r   zRemoved )rA   ensure_native_kernelrB   r   r   
differencerv   joinr   
answer_yesrD   getrG   inputr(   lowerr3   remove_kernel_specr   r   r   rt   ru   )r   
spec_pathsmissingr*   r5   answerr|   r   s           r   rM   RemoveKernelSpec.start   sv   8=  5--??A
doo&11#j/BII8499W;MMN

doo+,!~~d14::b>*"TZZ^,<=> ( ;c$//>RRSF<<>,,S11??K//BB;O HTF#$ +  77ell*!#**-2DIIaLLs   F
G;AG65G66G;)r   rP   )rx   zlist[str] | Noner@   r   r   )rQ   rR   rS   rT   rU   r   rV   rW   r   r   r   r
   r   r   r	   r   rA   r    r   rX   r   r   rr   rM   rY   r   r   s   @r   r   r      s    )GGKFHt*]^EgiJ"#45F 	!GT?3UZZ@E 
LL!!"2% %r"   r   c                  p    \ rS rSrSr\rSr\" \	5      r
SS jr\" SSSS9rS S	S00S
4\S   S.rSS jrSrg)InstallNativeKernelSpec   z)An app to install the native kernel spec.zG[DEPRECATED] Install the IPython kernel spec directory for this Python.c                (    [        U R                  S9$ r^   r   r   s    r   r    4InstallNativeKernelSpec._kernel_spec_manager_default   r`   r"   FTri   rb   rj   rk   r   )rj   r   c                4   U R                   R                  S5         SSKJn   WR                  U R                  U R                  S9  g	! [         a,    [        S[        R                  S9  U R                  S5         N[f = f! [         a  nUR                  [        R                  :X  aR  [        U[        R                  S9  U R                  (       d  [        S[        R                  S9  U R                  S5        U R                  U5         S	nAg	S	nAff = f)
r$   z`jupyter kernelspec install-self` is DEPRECATED as of 4.0. You probably want `ipython kernel install` to install the IPython kernelspec.r   )
kernelspecz0ipykernel not available, can't install its spec.ro   r   )rj   r}   N)logwarning	ipykernelr   ModuleNotFoundErrorrD   rt   ru   rv   installrA   rj   r   r   r   )r   r   r   s      r   rM   InstallNativeKernelSpec.start  s    ]	
	,	t77diiH	 # 	D3::VIIaL	
  		ww%,,&acjj)yyN ZZ 		!IIaLL		s)   A	 $B 	3A?>A?
DBDDrO   NrP   r   )rQ   rR   rS   rT   rU   r   rV   rW   r	   r   rA   r    r   rj   r   rX   rM   rY   rO   r"   r   r   r      sc    3G_K"#459 D '75
 G$Er"   r   c                  *    \ rS rSrSr\rSrSS jrSr	g)ListProvisionersi  zAn app to list provisioners.z=List available provisioners for use in kernel specifications.c                    [         R                  " U S9n[        S5        UR                  5       n[	        [        US S9S   5      n[        U5       H%  n[        SUR                  U5       SX$    35        M'     g)	r$   )r   zAvailable kernel provisioners:c                    [        U 5      $ r&   r'   r)   s    r   r+   (ListProvisioners.start.<locals>.<lambda>'  s    SYr"   r-   r/   r:   r;   N)r   instancerD   get_provisioner_entriesr(   rE   rG   )r   kfpprovisionersrK   r*   s        r   rM   ListProvisioners.start   st    &//t<./224 vl0FGKL<(DBtzz(+,D1C0DEF )r"   rO   Nr   )
rQ   rR   rS   rT   rU   r   rV   rW   rM   rY   rO   r"   r   r   r     s    &GUK
Gr"   r   c            
      z   \ rS rSrSr\rSrSr\	" \
\
R                  R                  5       S   4\\R                  R                  5       S   4\S4\\R                  R                  5       S   4\\R                  R                  5       S   4\\R                  R                  5       S   4S.5      r0 r0 rSS jrS	rg
)KernelSpecAppi-  zAn app to manage kernel specs.zjupyter kernelspecz%Manage Jupyter kernel specifications.r   zAlias for remove)listr   	uninstallremovezinstall-selfr   c                
   U R                   c]  [        S[        U R                  5      -  5        [        5         U R	                  5         U R                  5         U R                  S5        gU R                   R                  5       $ )r$   Nz0No subcommand specified. Must specify one of: %sr   )subapprD   r   subcommandsprint_descriptionprint_subcommandsrv   rM   r   s    r   rM   KernelSpecApp.startH  s`    ;;DtDL\L\G]]^G""$""$IIaL;;$$&&r"   rO   Nr   )rQ   rR   rS   rT   rU   r   rV   r*   rW   r   r   
splitlinesr[   r   r   r   r   r   rX   rM   rY   rO   r"   r   r   r   -  s    (GD=K$o&A&A&L&L&Nq&QR!!--88:1= +,>?')9)E)E)P)P)RST)UV''33>>@C ./?/K/K/V/V/XYZ/[\	
K" GE	'r"   r   __main__)$rU   
__future__r   r   r   os.pathrd   rt   typingtjupyter_core.applicationr   r   r   	traitletsr   r   r	   r
   r   traitlets.config.applicationr   ra   r   r   r   provisioning.factoryr   r   r[   r   r   r   r   rQ   launch_instancerO   r"   r   <module>r      s    % #    
  I I 9 9 4  ) :0j 0f`
 `F8%z 8%v1j 1hGz G&$'K $'N z!!# r"   