+
    ^|i                         R t ^ RIt^ RIHt ^ RIHt  ! R R4      t]! 4       t ! R R4      t	]	! 4       t
 ! R R	]4      tR# )
zF
A context manager for managing things injected into :mod:`builtins`.
N)Configurable)Instancec                       ] tR t^tRtR# )__BuiltinUndefined N__name__
__module____qualname____firstlineno____static_attributes__r       ;/usr/lib/python3/dist-packages/IPython/core/builtin_trap.pyr   r          r   r   c                       ] tR t^tRtR# )__HideBuiltinr   Nr   r   r   r   r   r      r   r   r   c                   n   a a ] tR t^t o]! RRR7      tRV 3R lltR tR tR t	R t
R	 tR
 tRtVtV ;t# )BuiltinTrapz1IPython.core.interactiveshell.InteractiveShellABCT)
allow_nonec                   < \         \        V `  VR R7       / V n        ^ V n        Wn        R\        R\        RV P
                  P                  /V n        R # )N)shellconfigexitquitget_ipython)	superr   __init___orig_builtins_nested_levelr   HideBuiltinr   auto_builtins)selfr   	__class__s   &&r   r   BuiltinTrap.__init__    sS    k4)d)C  
 %k$k+TZZ-C-C r   c                z    V P                   ^ 8X  d   V P                  4        V ;P                   ^,          un         V # )    )r   activate)r!   s   &r   	__enter__BuiltinTrap.__enter__.   s/    "MMOar   c                z    V P                   ^8X  d   V P                  4        V ;P                   ^,          un         R# )   F)r   
deactivate)r!   typevalue	tracebacks   &&&&r   __exit__BuiltinTrap.__exit__5   s.    "OOar   c                    \         P                  pVP                  V\        4      pV\        J d   V\        Jd   W@P
                  V&   W1 R# R# W@P
                  V&   W#V&   R# )z$Add a builtin and save the original.N)builtin_mod__dict__getBuiltinUndefinedr   r   )r!   keyr-   bdictorigs   &&&  r   add_builtinBuiltinTrap.add_builtin<   s^    $$yy./K+++/##C(J , (,$#Jr   c                f    V\         J d   \        P                  V R# V\        P                  V&   R# )z0Remove an added builtin and re-set the original.N)r5   r2   r3   )r!   r6   r8   s   &&&r   remove_builtinBuiltinTrap.remove_builtinH   s)    ##$$S)(,K  %r   c                t    V P                   pV P                  P                  4        F  w  r#V! W#4       K  	  R# )z6Store ipython references in the __builtin__ namespace.N)r9   r    items)r!   r9   namefuncs   &   r   r&   BuiltinTrap.activateO   s2     &&,,224JD# 5r   c                    V P                   pV P                  P                  4        F  w  r#V! W#4       K  	  V P                  P                  4        RV n        R# )zvRemove any builtins which might have been added by add_builtins, or
restore overwritten ones to their previous values.FN)r<   r   r?   clear_builtins_added)r!   r<   r6   vals   &   r   r+   BuiltinTrap.deactivateV   sL     ,,++113HC3$ 4!!#$r   )rE   r   r   r    r   )N)r   r	   r
   r   r   r   r   r'   r/   r9   r<   r&   r+   r   __classdictcell____classcell__)r"   __classdict__s   @@r   r   r      s=     H $&E 
-$% %r   r   )__doc__builtinsr2   traitlets.config.configurabler   	traitletsr   r   r5   r   r   r   r   r   r   <module>rO      sK   
  6 	 	 &' 	 	 oB%, B%r   