
    f2                     >    d Z ddlZddlmZ ddlmZ  G d de      Zy)zZ
A context manager for handling sys.displayhook.

Authors:

* Robert Kern
* Brian Granger
    N)Configurable)Anyc                   J     e Zd ZdZ e       Zd fd	Zd Zd Zd Z	d Z
 xZS )DisplayTrapzObject to manage sys.displayhook.

    This came from IPython.core.kernel.display_hook, but is simplified
    (no callbacks or formatters) until more of the core is refactored.
    c                 L    t         t        |   |d        d | _        d| _        y )N)hookconfigr   )superr   __init__old_hook_nested_level)selfr   	__class__s     T/var/www/cvtools/html/venv/lib/python3.12/site-packages/IPython/core/display_trap.pyr   zDisplayTrap.__init__)   s(    k4)tD)A     c                 n    | j                   dk(  r| j                          | xj                   dz  c_         | S )Nr      )r   setr   s    r   	__enter__zDisplayTrap.__enter__0   s/    "HHJar   c                 l    | j                   dk(  r| j                          | xj                   dz  c_         y)Nr   F)r   unset)r   typevalue	tracebacks       r   __exit__zDisplayTrap.__exit__6   s-    "JJLar   c                     t         j                  | j                  ur+t         j                  | _        | j                  t         _        yy)zSet the hook.N)sysdisplayhookr   r   r   s    r   r   zDisplayTrap.set=   s-    ??$))+OODM"iiCO ,r   c                 .    | j                   t        _        y)zUnset the hook.N)r   r   r   r   s    r   r   zDisplayTrap.unsetC   s    --r   )N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r       s*     5D((r   r   )r$   r   traitlets.config.configurabler   	traitletsr   r    r   r   <module>r)      s!   (  6 %(, %(r   