o
    i                     @   sz   d Z ddlZddlZddlZddlZddlmZ ejdd Zejdd Z	ejdd	 Z
ejd
d Zejdd ZdS )z%Fixtures for use with jupyter events.    N)EventLoggerc                   C   s   t  S )zA stream for capture events.)ioStringIO r   r   W/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/jupyter_events/pytest_plugin.pyjp_event_sink   s   r   c                 C   s
   t | S )zGA logging handler that captures any events emitted by the event handler)loggingStreamHandler)r   r   r   r   jp_event_handler   s   
r
   c                    s    fdd}|S )z3Reads list of events since last time it was called.c                     s@         d} dd | D }d d |S )N
c                 S   s   g | ]}t |qS r   )jsonloads).0itemr   r   r   
<listcomp>   s    z9jp_read_emitted_events.<locals>._read.<locals>.<listcomp>r   )flushgetvaluestripsplittruncateseek)linesoutputr
   r   r   r   _read   s   

z%jp_read_emitted_events.<locals>._readr   )r
   r   r   r   r   r   jp_read_emitted_events   s   	r   c                   C   s   g S )zA list of schema references.

    Each item should be one of the following:
    - string of serialized JSON/YAML content representing a schema
    - a pathlib.Path object pointing to a schema file on disk
    - a dictionary with the schema data.
    r   r   r   r   r   jp_event_schemas'   s   	r   c                 C   s*   t  }|D ]}|| q|j| d |S )z(A pre-configured event logger for tests.)handler)r   register_event_schemaregister_handler)r
   r   loggerschemar   r   r   jp_event_logger3   s
   r"   )__doc__r   r   r   pytestjupyter_eventsr   fixturer   r
   r   r   r"   r   r   r   r   <module>   s     



