§
    
ÃÓd=  ã                   óB   — d Z ddlZddlZddlmZ  G d„ de¦  «        ZdS )z#
Spyder shell for Jupyter kernels.
é    N)ÚZMQInteractiveShellc                   óæ   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zˆ fd„Zd„ Zd„ Zd„ Z	e
d„ ¦   «         Zej        d	„ ¦   «         Ze
d
„ ¦   «         Ze
d„ ¦   «         Ze
d„ ¦   «         Zej        d„ ¦   «         Zd„ Zˆ xZS )ÚSpyderShellzSpyder shell.c                 ó–   •— d | _          t          t          | ¦  «        j        |i |¤Ž | j                             d| j        ¦  «         d S )NÚpost_execute)Ú_pdb_objÚsuperr   Ú__init__ÚeventsÚregisterÚdo_post_execute)ÚselfÚargsÚkwargsÚ	__class__s      €ú<lib/python3.11/site-packages/spyder_kernels/console/shell.pyr
   zSpyderShell.__init__   sO   ø€ àˆŒØ)k˜4Ñ Ô Ô)¨4Ð:°6Ð:Ð:Ð:ð 	Œ×Ò˜^¨TÔ-AÑBÔBÐBÐBÐBó    c                 óŽ   •— | j         j                             ¦   «          t          t          | ¦  «                             ¦   «         S )zEngage the exit actions.)ÚkernelÚfrontend_commÚclose_threadr	   r   Úask_exit)r   r   s    €r   r   zSpyderShell.ask_exit!   s6   ø€ àŒÔ!×.Ò.Ñ0Ô0Ð0Ý•[ $Ñ'Ô'×0Ò0Ñ2Ô2Ð2r   c                 ó~   •— |t           j        u rdg}t          t          | ¦  «                             |||¦  «         dS )zü
        Don't show a traceback when exiting our debugger after entering
        it through a `breakpoint()` call.

        This is because calling `!exit` after `breakpoint()` raises
        BdbQuit, which throws a long and useless traceback.
        Ú N)ÚbdbÚBdbQuitr	   r   Ú_showtraceback)r   ÚetypeÚevalueÚstbr   s       €r   r   zSpyderShell._showtraceback&   sA   ø€ ð •C”KÐÐØ$ˆCÝk˜4Ñ Ô ×/Ò/°°v¸sÑCÔCÐCÐCÐCr   c                 óh   — t          j        |dz   ¦  «        }| j        |u r| j        j        S |j        S )z%Get local scope at given frame depth.é   )ÚsysÚ	_getframeÚ
_pdb_framer   Úcurframe_localsÚf_locals©r   Ústack_depthÚframes      r   Úget_local_scopezSpyderShell.get_local_scope3   s5   € å”˜k¨A™oÑ.Ô.ˆØŒ?˜eÐ#Ð#à”=Ô0Ð0à”>Ð!r   c                 ó>   — t          j        |dz   ¦  «        }|j        S )z&Get global scope at given frame depth.r"   )r#   r$   Ú	f_globalsr(   s      r   Úget_global_scopezSpyderShell.get_global_scope<   s   € å”˜k¨A™oÑ.Ô.ˆØŒÐr   c                 ó*   — t          | j        ¦  «        S )z6
        Check if we are currently debugging.
        )Úboolr%   ©r   s    r   Úis_debuggingzSpyderShell.is_debuggingA   s   € õ D”OÑ$Ô$Ð$r   c                 ó   — | j         S )zGet current pdb session.©r   r1   s    r   Úpdb_sessionzSpyderShell.pdb_sessionG   s   € ð Œ}Ðr   c                 ó   — || _         dS )z$Register Pdb session to use it laterNr4   )r   Úpdb_objs     r   r5   zSpyderShell.pdb_sessionL   s   € ð  ˆŒˆˆr   c                 ó,   — | j         | j         j        S dS )z(Return current Pdb frame if there is anyN)r5   Úcurframer1   s    r   r%   zSpyderShell._pdb_frameQ   s!   € ð ÔÐ'ØÔ#Ô,Ð,ð (Ð'r   c                 ó,   — | j         | j        j        S i S )zl
        Return current Pdb frame locals if available. Otherwise
        return an empty dictionary
        )r%   r   r&   r1   s    r   Ú_pdb_localszSpyderShell._pdb_localsW   s   € ð Œ?Ð&Ø”=Ô0Ð0àˆIr   c                 ó6   — | j         | j         j        S | j        S )zGet the current namespace.)r%   r-   Ú_SpyderShell__user_nsr1   s    r   Úuser_nszSpyderShell.user_nsb   s   € ð Œ?Ð&Ø”?Ô,Ð,à”>Ð!r   c                 ó   — || _         dS )zSet user_ns.N)r=   )r   Ú	namespaces     r   r>   zSpyderShell.user_nsj   s   € ð #ˆŒˆˆr   c                 ó~   — t           j                             ¦   «          t           j                             ¦   «          dS )zFlush __std*__ after execution.N)r#   Ú
__stderr__ÚflushÚ
__stdout__r1   s    r   r   zSpyderShell.do_post_executeo   s2   € õ 	Œ×ÒÑÔÐÝŒ×ÒÑÔÐÐÐr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r+   r.   r2   Úpropertyr5   Úsetterr%   r;   r>   r   Ú__classcell__)r   s   @r   r   r      s^  ø€ € € € € ØÐðCð Cð Cð Cð Cð3ð 3ð 3ð 3ð 3ð

Dð 
Dð 
Dð 
Dð 
Dð"ð "ð "ðð ð ð
%ð %ð %ð ðð ñ „Xðð Ôð ð  ñ Ôð ð ð-ð -ñ „Xð-ð
 ðð ñ „Xðð ð"ð "ñ „Xð"ð „^ð#ð #ñ „^ð#ðð ð ð ð ð ð r   r   )rH   r   r#   Úipykernel.zmqshellr   r   © r   r   ú<module>rN      sv   ððð ð
 €
€
€
Ø 
€
€
€
ð 3Ð 2Ð 2Ð 2Ð 2Ð 2ð^ð ^ð ^ð ^ð ^Ð%ñ ^ô ^ð ^ð ^ð ^r   