o
    ¹iQ  ã                   @   s2   d Z ddlZddlmZ ddlmZ ddd„ZdS )	z/Simple function for embedding an IPython kernelé    N)Úextract_module_localsé   )ÚIPKernelAppc                 K   s°   t  ¡ r	t  ¡ }nt jdi |¤Ž}| g ¡ |jjj}|dur'|tj|jjj	< t
dƒ\}}| du r3|} |du r>tdi |¤Ž}| |j_t|tƒsIJ ‚||j_|j ¡  | ¡  dS )a  Embed and start an IPython kernel in a given scope.

    Parameters
    ----------
    module : ModuleType, optional
        The module to load into IPython globals (default: caller)
    local_ns : dict, optional
        The namespace to load into IPython user namespace (default: caller)
    kwargs : dict, optional
        Further keyword args are relayed to the IPKernelApp constructor,
        allowing configuration of the Kernel.  Will only have an effect
        on the first embed_kernel call for a given process.

    Nr   © )r   ÚinitializedÚinstanceÚ
initializeÚkernelÚshellÚ_orig_sys_modules_main_modÚsysÚmodulesÚ_orig_sys_modules_main_namer   ÚdictÚuser_moduleÚ
isinstanceÚuser_nsÚset_completer_frameÚstart)ÚmoduleÚlocal_nsÚkwargsÚappÚmainÚcaller_moduleÚcaller_localsr   r   úJ/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/ipykernel/embed.pyÚembed_kernel   s"   



r   )NN)Ú__doc__r   ÚIPython.utils.framer   Ú	kernelappr   r   r   r   r   r   Ú<module>   s
    