ó
    Ñ]j¾  ã                   ó‚   • S r SSKrSSKJr  SSKJr   " S S5      r\" 5       r " S S5      r	\	" 5       r
 " S	 S
\5      rg)zF
A context manager for managing things injected into :mod:`builtins`.
é    N)ÚConfigurable)ÚInstancec                   ó   • \ rS rSrSrg)Ú__BuiltinUndefinedé   © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/IPython/core/builtin_trap.pyr   r      ó   † Úr   r   c                   ó   • \ rS rSrSrg)Ú__HideBuiltiné   r   Nr	   r   r   r   r   r      r   r   r   c                   ó^   ^ • \ rS rSr\" SSS9rSU 4S jjrS rS rS r	S	 r
S
 rS rSrU =r$ )ÚBuiltinTrapé   z1IPython.core.interactiveshell.InteractiveShellABCT)Ú
allow_nonec                 ó    >• [         [        U ]  US S9  0 U l        SU l        Xl        [        [        U R
                  R                  S.U l        g )N)ÚshellÚconfigr   )ÚexitÚquitÚget_ipython)	Úsuperr   Ú__init__Ú_orig_builtinsÚ_nested_levelr   ÚHideBuiltinr   Úauto_builtins)Úselfr   Ú	__class__s     €r   r    ÚBuiltinTrap.__init__    sM   ø€ ÜŒk˜4Ñ)°¸dÐ)ÑCØ ˆÔð ˆÔØŒ
ô '2Ü&1Ø-1¯Z©Z×-CÑ-Cñ ˆÕr   c                 óp   • U R                   S:X  a  U R                  5         U =R                   S-  sl         U $ )Nr   é   )r"   Úactivate)r%   s    r   Ú	__enter__ÚBuiltinTrap.__enter__.   s/   € Ø×Ñ Ó"Ø�M‰MŒOØ×Ò˜aÑÕàˆr   c                 ón   • U R                   S:X  a  U R                  5         U =R                   S-  sl         g)Nr)   F)r"   Ú
deactivate)r%   ÚtypeÚvalueÚ	tracebacks       r   Ú__exit__ÚBuiltinTrap.__exit__5   s.   € Ø×Ñ Ó"Ø�O‰OÔØ×Ò˜aÑÕàr   c                 ó¼   • [         R                  nUR                  U[        5      nU[        L a  U[        La  X@R
                  U'   X1	 ggX@R
                  U'   X#U'   g)z$Add a builtin and save the original.N)Úbuiltin_modÚ__dict__ÚgetÚBuiltinUndefinedr#   r!   )r%   Úkeyr0   ÚbdictÚorigs        r   Úadd_builtinÚBuiltinTrap.add_builtin<   s^   € ä×$Ñ$ˆØ�y‰y˜Ô.Ó/ˆØ”KÒØÔ+Ò+Ø+/×#Ñ# CÑ(Ø‘Jð ,ð (,×Ñ Ñ$Ø�#ŠJr   c                 ó`   • U[         L a  [        R                  U	 gU[        R                  U'   g)z0Remove an added builtin and re-set the original.N)r8   r5   r6   )r%   r9   r;   s      r   Úremove_builtinÚBuiltinTrap.remove_builtinH   s)   € àÔ#Ò#Ü×$Ñ$ SÑ)à(,ŒK× Ñ  Ò%r   c                 ór   • U R                   nU R                  R                  5        H  u  p#U" X#5        M     g)z6Store ipython references in the __builtin__ namespace.N)r<   r$   Úitems)r%   r<   ÚnameÚfuncs       r   r*   ÚBuiltinTrap.activateO   s2   € ð ×&Ñ&ˆØ×,Ñ,×2Ñ2Ö4‰JˆDÙ˜Ö#ò 5r   c                 ó´   • U R                   nU R                  R                  5        H  u  p#U" X#5        M     U R                  R                  5         SU l        g)zvRemove any builtins which might have been added by add_builtins, or
restore overwritten ones to their previous values.FN)r?   r!   rB   ÚclearÚ_builtins_added)r%   r?   r9   Úvals       r   r.   ÚBuiltinTrap.deactivateV   sL   € ð ×,Ñ,ˆØ×+Ñ+×1Ñ1Ö3‰HˆCÙ˜3Ö$ñ 4à×Ñ×!Ñ!Ô#Ø$ˆÕr   )rH   r"   r!   r$   r   )N)r
   r   r   r   r   r   r    r+   r2   r<   r?   r*   r.   r   Ú__classcell__)r&   s   @r   r   r      s;   ø† áÐHØ $ñ&€E÷ òòò
ò-ò$÷%ð %r   r   )Ú__doc__Úbuiltinsr5   Útraitlets.config.configurabler   Ú	traitletsr   r   r8   r   r#   r   r   r   r   Ú<module>rP      sK   ðñó
 å 6å ÷	ñ 	ñ &Ó'Ð ÷	ñ 	ñ ‹o€ôB%�,õ B%r   