o
    ˷e2                     @   s8   d Z ddlZddlmZ ddlmZ G dd deZdS )zZ
A context manager for handling sys.displayhook.

Authors:

* Robert Kern
* Brian Granger
    N)Configurable)Anyc                       sH   e Zd ZdZe Zd fdd	Zdd Zdd Zd	d
 Z	dd Z
  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.
    Nc                    s$   t t| j|d d d | _d| _d S )N)hookconfigr   )superr   __init__old_hook_nested_level)selfr   	__class__ P/var/www/ideatree/venv/lib/python3.10/site-packages/IPython/core/display_trap.pyr   )   s   
zDisplayTrap.__init__c                 C   s$   | j dkr	|   |  j d7  _ | S )Nr      )r
   setr   r   r   r   	__enter__0   s   
zDisplayTrap.__enter__c                 C   s$   | j dkr	|   |  j d8  _ dS )Nr   F)r
   unset)r   typevalue	tracebackr   r   r   __exit__6   s   
zDisplayTrap.__exit__c                 C   s$   t j| jurt j| _| jt _dS dS )zSet the hook.N)sysdisplayhookr   r	   r   r   r   r   r   =   s   zDisplayTrap.setc                 C   s   | j t_dS )zUnset the hook.N)r	   r   r   r   r   r   r   r   C   s   zDisplayTrap.unset)N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   __classcell__r   r   r   r   r       s    r   )r   r   traitlets.config.configurabler   	traitletsr   r   r   r   r   r   <module>   s
   