
    ^h                    $   S r SSKJr  SSKrSSKrSSKrSSKJrJr  SSK	r	SSK
Jr  \	R                  SS j5       r\	R                  SS j5       r\	R                        SS j5       r\	R                  SS	 j5       r\	R                  SS
 j5       rg)z%Fixtures for use with jupyter events.    )annotationsN)AnyCallable)EventLoggerc                 ,    [         R                  " 5       $ )zA stream for capture events.)ioStringIO     V/home/james-whalen/.local/lib/python3.13/site-packages/jupyter_events/pytest_plugin.pyjp_event_sinkr      s     ;;=r   c                .    [         R                  " U 5      $ )zGA logging handler that captures any events emitted by the event handler)loggingStreamHandler)r   s    r   jp_event_handlerr      s       //r   c                   ^ ^ SU U4S jjnU$ )z3Reads list of events since last time it was called.c                 0  > TR                  5         TR                  5       R                  5       n U (       a6  U R                  S5       Vs/ s H  n[        R
                  " U5      PM     snOS nTR                  S5        TR                  S5        U$ s  snf )N
r   )flushgetvaluestripsplitjsonloadstruncateseek)	event_bufitemoutputr   r   s      r   _read%jp_read_emitted_events.<locals>._read    sz     !**,224	IRyt/DE/Dt$**T"/DEX\q!1	 Fs   
 B)returnzlist[str] | Noner
   )r   r   r    s   `` r   jp_read_emitted_eventsr#      s      Lr   c                     / $ )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   jp_event_schemasr%   ,   s	     Ir   c                l    [        5       nU H  nUR                  U5        M     UR                  U S9  U$ )z(A pre-configured event logger for tests.)handler)r   register_event_schemaregister_handler)r   r%   loggerschemas       r   jp_event_loggerr,   8   s:     ]F"$$V, #
$45Mr   )r"   io.StringIO)r   r-   r"   logging.Handler)r   r.   r   r-   r"   zCallable[..., list[str] | None])r"   	list[Any])r   r.   r%   r/   r"   r   )__doc__
__future__r   r   r   r   typingr   r   pytestjupyter_eventsr   fixturer   r   r#   r%   r,   r
   r   r   <module>r6      s    + " 	      &  
 0 0
 %6A$ "    r   