
    Xh                     >    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                   `     e Zd ZdZ e       Zd	 fd	Zd Zd Ze	de
f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     M/var/www/html/myenv/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   returnc                      | j                   dk7  S )Nr   )r   r   s    r   	is_activezDisplayTrap.is_active=   s    !!Q&&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.setA   s-    ??$))+OODM"iiCO ,r   c                 .    | j                   t        _        y)zUnset the hook.N)r   r!   r"   r   s    r   r   zDisplayTrap.unsetG   s    --r   )N)__name__
__module____qualname____doc__r   r   r   r   r   propertyboolr   r   r   __classcell__)r   s   @r   r   r       sE     5D '4 ' '((r   r   )r'   r!   traitlets.config.configurabler   	traitletsr   r    r   r   <module>r.      s!   (  6 )(, )(r   