Ë
    :vžj›&  ã                  óî  — 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	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 ej*                  j,                  Zd	e	j0                  d   z  Z e ee«      j6                  d
«      Z	 	 	 	 d	 	 	 	 	 	 	 	 	 dd„Z	 d	 	 	 	 	 dd„Z	 	 	 	 d	 	 	 	 	 	 	 	 	 dd„Zddedddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z  G d„ de«      Z!e"dk(  re!jG                  «        yy)z#The IPython kernel spec for Jupyteré    )ÚannotationsN)ÚPath)ÚAny)ÚKernelSpecManager)ÚUnicode)ÚApplicationzpython%iÚ	resourcesc                ó\   — |€t         j                  }|xs g }|xs g }|g|¢d‘| ‘d‘d‘|¢S )aï  Build Popen command list for launching an IPython kernel.

    Parameters
    ----------
    mod : str, optional (default 'ipykernel')
        A string of an IPython module whose __main__ starts an IPython kernel
    executable : str, optional (default sys.executable)
        The Python executable to use for the kernel process.
    extra_arguments : list, optional
        A list of extra arguments to pass when executing the launch code.

    Returns
    -------
    A Popen command list
    z-mz-fz{connection_file})ÚsysÚ
executable)Úmodr   Úextra_argumentsÚpython_argumentss       úe/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/ipykernel/kernelspec.pyÚmake_ipkernel_cmdr      sR   € ð* ÐÜ—^‘^ˆ
Ø%Ò+¨€OØ'Ò-¨2ÐØÐbÐ)Ðb¨4Ðb°Ðb°dÐbÐ<OÐbÐRaÐbÐbó    c                óV   — t        | |¬«      dt        j                  d   z  ddddœdd	œS )
zConstruct dict for kernel.json©r   r   zPython %i (ipykernel)r   ÚpythonTÚcurve)ÚdebuggerÚsupported_encryptionz5.5)ÚargvÚdisplay_nameÚlanguageÚmetadataÚkernel_protocol_version)r   r   Úversion_infor   s     r   Úget_kernel_dictr   ;   s?   € ô
 "Ø+Ð>Nô
ð 0´#×2BÑ2BÀ1Ñ2EÑEØØ!%¸wÑGØ#(ñð r   c                ó6  — | €&t        t        j                  d¬«      «      t        z  } t	        j
                  t        | «       t        | «      j                  «       j                  }|t        j                  z  s+t        | «      j                  |t        j                  z  «       t        ||«      }|r|j                  |«       t        t        | d«      d«      5 }t        j                   ||d¬«       ddd«       t#        | «      S # 1 sw Y   t#        | «      S xY w)zïWrite a kernel spec directory to `path`

    If `path` is not specified, a temporary directory is created.
    If `overrides` is given, the kernelspec JSON is updated before writing.

    The path to the kernelspec is always returned.
    NÚ_kernels)Úsuffixzkernel.jsonÚwé   )Úindent)r   ÚtempfileÚmkdtempÚKERNEL_NAMEÚshutilÚcopytreeÚ	RESOURCESÚstatÚst_modeÚS_IWUSRÚchmodr   ÚupdateÚopenÚpjoinÚjsonÚdumpÚstr)ÚpathÚ	overridesr   r   ÚmaskÚkernel_dictÚfs          r   Úwrite_kernel_specr;   J   sØ   € ð €|Ü”H×$Ñ$¨JÔ7Ó8¼;ÑFˆô ‡O�O”I˜tÔ$ô �‹:�?‰?Ó×$Ñ$€DØ”$—,‘,ÒÜˆT‹
×Ñ˜¤§¡Ñ,Ô-ô " /Ð3CÓD€KáØ×Ñ˜9Ô%Ü	Œe�D˜-Ó(¨#Ô	.°!Ü�	‰	�+˜q¨Õ+÷ 
/ô ˆt‹9Ð÷ 
/ô ˆt‹9Ðús   ÃDÄDFc                ó’  — | €
t        «       } |€i }|t        k7  r|€|}i }|r||d<   |r"d|g}	|sdt        j                  d   |fz  |d<   nd}	d}
t        j                  dk\  r&t	        j
                  «       dk(  r|sdg}
n	d	|vrd
|d	<   |r||d<   t        ||	|
¬«      }| j                  ||||¬«      }t        j                  |«       |S )aó  Install the IPython kernelspec for Jupyter

    Parameters
    ----------
    kernel_spec_manager : KernelSpecManager [optional]
        A KernelSpecManager to use for installation.
        If none provided, a default instance will be created.
    user : bool [default: False]
        Whether to do a user-only install, or system-wide.
    kernel_name : str, optional
        Specify a name for the kernelspec.
        This is needed for having multiple IPython kernels for different environments.
    display_name : str, optional
        Specify the display name for the kernelspec
    profile : str, optional
        Specify a custom profile to be loaded by the kernel.
    prefix : str, optional
        Specify an install prefix for the kernelspec.
        This is needed to install into a non-default location, such as a conda/virtual-env.
    env : dict, optional
        A dictionary of extra environment variables for the kernel.
        These will be added to the current environment variables before the
        kernel is started
    frozen_modules : bool, optional
        Whether to use frozen modules for potentially faster kernel startup.
        Using frozen modules prevents debugging inside of some built-in
        Python modules, such as io, abc, posixpath, ntpath, or stat.
        The frozen modules are used in CPython for faster interpreter startup.
        Ignored for cPython <3.11 and for other Python implementations.

    Returns
    -------
    The path where the kernelspec was installed.
    Nr   ú	--profilezPython %i [profile=%s]r   )é   é   ÚCPythonz-Xfrozen_modules=offÚPYDEVD_DISABLE_FILE_VALIDATIONÚ1Úenv)r7   r   r   )Úkernel_nameÚuserÚprefix)
r   r(   r   r   ÚplatformÚpython_implementationr;   Úinstall_kernel_specr)   Úrmtree)Úkernel_spec_managerrE   rD   r   rF   ÚprofilerC   Úfrozen_modulesr7   r   r   r6   Údests                r   ÚinstallrO   m   s  € ðX Ð"Ü/Ó1Ðà
€{Øˆà”{Ò"¨Ð)=ð #ˆØ "€IÙØ$0ˆ	�.Ñ!ÙØ&¨Ð0ˆÙà(@ÄC×DTÑDTÐUVÑDWÐY`ÐCaÑ(aˆI�nÒ%àˆàÐô ×Ñ˜7Ò"¤x×'EÑ'EÓ'GÈ9Ò'TÙà 6Ð7ÑØ-°SÑ8ð 58ˆCÐ0Ñ1á
Øˆ	�%ÑÜØ¨_ÐO_ô€Dð ×2Ñ2Ø˜+¨D¸ð 3ó €Dô ‡M�M�$ÔØ€Kr   c                  ó2   — e Zd ZdZ ed«      Zddd„Zdd„Zy)	ÚInstallIPythonKernelSpecAppzDummy app wrapping argparsezipython-kernel-installNc                ó<   — |€t         j                  dd }|| _        y)zInitialize the app.Nr$   )r   r   )Úselfr   s     r   Ú
initializez&InstallIPythonKernelSpecApp.initializeÏ   s   € àˆ<Ü—8‘8˜A˜B�<ˆDØˆ�	r   c                óN  — ddl }|j                  | j                  d¬«      }|j                  ddd¬«       |j                  d	t        t
        d
¬«       |j                  dt        d¬«       |j                  dt        d¬«       |j                  dt        d¬«       |j                  ddt        j                  ddt        j                  z  ¬«       |j                  ddddd¬«       |j                  ddd¬«       |j                  | j                  «      }|j                  rt        |j                  «      |_
        	 t        |j                  |j                  |j                  |j                  |j                  |j                  ¬ «      }t'        d$|j                  › d%|› �«       y# t         $ rv}|j"                  t"        j$                  k(  rSt'        |t        j(                  ¬!«       |j                  rt'        d"t        j(                  ¬!«       | j+                  d#«       ‚ d}~ww xY w)&zStart the app.r   Nz Install the IPython kernel spec.)ÚprogÚdescriptionz--userÚ
store_truez3Install for the current user instead of system-wide)ÚactionÚhelpz--namezdSpecify a name for the kernelspec. This is needed to have multiple IPython kernels at the same time.)ÚtypeÚdefaultrZ   z--display-namezdSpecify the display name for the kernelspec. This is helpful when you have multiple IPython kernels.)r[   rZ   r=   z]Specify an IPython profile to load. This can be used to create custom versions of the kernel.z--prefixz�Specify an install prefix for the kernelspec. This is needed to install into a non-default location, such as a conda/virtual-env.z--sys-prefixÚstore_constrF   z[Install to Python's sys.prefix. Shorthand for --prefix='%s'. For use in conda/virtual-envs.)rY   ÚconstrN   rZ   z--envÚappendé   )ÚENVÚVALUEz)Set environment variables for the kernel.)rY   ÚnargsÚmetavarrZ   z--frozen_modulesz‘Enable frozen modules for potentially faster startup. This has a downside of preventing the debugger from navigating to certain built-in modules.)rE   rD   rL   rF   r   rC   )Úfilez$Perhaps you want `sudo` or `--user`?r$   zInstalled kernelspec z in )ÚargparseÚArgumentParserÚnameÚadd_argumentr5   r(   r   rF   Ú
parse_argsr   rC   ÚdictrO   rE   rL   r   ÚOSErrorÚerrnoÚEACCESÚprintÚstderrÚexit)rS   rf   ÚparserÚoptsrN   Úes         r   Ústartz!InstallIPythonKernelSpecApp.startÕ   s  € ãà×(Ñ(Ø—‘Ð(Jð )ó 
ˆð 	×ÑØØØFð 	ô 	
ð
 	×ÑØÜÜðQð	 	ô 	
ð 	×ÑØÜðGð 	ô 	
ð 	×ÑØÜðHð 	ô 	
ð 	×ÑØÜðcð 	ô 	
ð 	×ÑØØ Ü—*‘*ØðKÜMPÏZÉZñXð 	ô 	
ð 	×ÑØØØØ$Ø<ð 	ô 	
ð 	×ÑØØðkð 	ô 	
ð × Ñ  §¡Ó+ˆØ�8Š8Ü˜DŸH™H“~ˆDŒHð	ÜØ—Y‘YØ ŸI™IØŸ™Ø—{‘{Ø!×.Ñ.Ø—H‘HôˆDô 	Ð% d§i¡i [°°T°FÐ;Õ<øô ò 	Ø�w‰wœ%Ÿ,™,Ò&Ü�aœcŸj™jÕ)Ø—9’9ÜÐ@ÄsÇzÁzÕRØ—	‘	˜!”Øûð	ús   Ä<AF% Æ%	H$Æ.A1HÈH$)N)r   úlist[str] | NoneÚreturnÚNone)rw   rx   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rh   rT   ru   © r   r   rQ   rQ   Ê   s   „ Ù%áÐ+Ó,€DôôM=r   rQ   Ú__main__)Úipykernel_launcherNNN)
r   r5   r   ú
str | Noner   rv   r   rv   rw   z	list[str])NN)r   rv   r   rv   rw   zdict[str, Any])NNNN)
r6   zPath | str | Noner7   zdict[str, Any] | Noner   rv   r   rv   rw   r5   )rK   zKernelSpecManager | NonerE   ÚboolrD   r5   r   r€   rF   r€   rL   r€   rC   zdict[str, str] | NonerM   r�   rw   r5   )$r|   Ú
__future__r   rm   r3   ÚosrG   r)   r,   r   r&   Úpathlibr   Útypingr   Újupyter_client.kernelspecr   Ú	traitletsr   Útraitlets.configr   r6   Újoinr2   r   r(   Ú__file__Úparentr+   r   r   r;   rO   rQ   ry   Úlaunch_instancer}   r   r   Ú<module>r�      sÅ  ðÙ )õ
 #ã Û Û 	Û Û Û Û 
Û Ý Ý å 7Ý Ý (à
�‰�‰€à˜3×+Ñ+¨AÑ.Ñ.€ñ ‘$�x“.×'Ñ'¨Ó5€	ð $Ø!Ø(,Ø)-ð	cØ	ðcàðcð &ðcð 'ð	cð
 ócð: TXðØ%ðØ@Pðàóð  #Ø'+Ø(,Ø)-ð	 Ø
ð à$ð ð &ð ð 'ð	 ð
 	ó ðH 59ØØ"Ø#ØØØ!%Ø ðWØ1ðWà
ðWð ðWð ð	Wð
 ðWð ðWð 
ðWð ðWð 	óWôzX= +ô X=ðv ˆzÒØ×/Ñ/Õ1ð r   