
    Mh                       d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
mZmZ  G d dej                  Z G d	 d
e          Z G d de	          Z e            Z e            Zej        Zej        Zej        Zej        Zej        ZdS )z(Read and write notebooks in JSON format.    )annotationsN   )	from_dict)NotebookReaderNotebookWriterrejoin_linessplit_linesstrip_transientc                      e Zd ZdZd ZdS )BytesEncoderz@A JSON encoder that accepts b64 (and other *ascii*) bytestrings.c                    t          |t                    r|                    d          S t          j                            | |          S )z#Get the default value of an object.ascii)
isinstancebytesdecodejsonJSONEncoderdefault)selfobjs     R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/nbformat/v3/nbjson.pyr   zBytesEncoder.default   s?    c5!! 	'::g&&&''c222    N)__name__
__module____qualname____doc__r    r   r   r   r      s)        JJ3 3 3 3 3r   r   c                      e Zd ZdZd Zd ZdS )
JSONReaderzA JSON notebook reader.c                d    t          j        |fi |} | j        |fi |}t          |          }|S )zConvert a string to a notebook.)r   loadsto_notebookr
   )r   skwargsnbs       r   readszJSONReader.reads   sE    Z$$V$$Tb++F++R  	r   c                :    t          t          |                    S )zConvert a dict to a notebook.)r   r   )r   dr$   s      r   r"   zJSONReader.to_notebook"   s    IaLL)))r   N)r   r   r   r   r&   r"   r   r   r   r   r      s8        !!  * * * * *r   r   c                      e Zd ZdZd ZdS )
JSONWriterzA JSON notebook writer.c                    t           |d<   d|d<   d|d<   d|d<   t          j        |          }t          |          }|                    dd          rt          |          }t          j        |fi |S )	zConvert a notebook to a string.clsr   indentT	sort_keys),z: 
separatorsr	   )r   copydeepcopyr
   popr	   r   dumps)r   r%   r$   s      r   writeszJSONWriter.writes*   s~    $ux"{*|]2R  ::mT** 	!RBz"'''''r   N)r   r   r   r   r5   r   r   r   r*   r*   '   s)        !!
( 
( 
( 
( 
(r   r*   )r   
__future__r   r1   r   nbbaser   rwbaser   r   r   r	   r
   r   r   r   r*   _reader_writerr&   readr"   writer5   r   r   r   <module>r=      s.   . . # " " " " "         ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^3 3 3 3 34# 3 3 3* * * * * * * *( ( ( ( ( ( ( (  *,,
*,,|!	r   