
    f                    6   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y)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y)BytesEncoderz@A JSON encoder that accepts b64 (and other *ascii*) bytestrings.c                    t        |t              r|j                  d      S t        j                  j                  | |      S )z#Get the default value of an object.ascii)
isinstancebytesdecodejsonJSONEncoderdefault)selfobjs     M/var/www/cvtools/html/venv/lib/python3.12/site-packages/nbformat/v4/nbjson.pyr   zBytesEncoder.default   s4    c5!::g&&''c22    N)__name__
__module____qualname____doc__r    r   r   r   r      s
    J3r   r   c                      e Zd ZdZd Zd Zy)
JSONReaderzA JSON notebook reader.c                X    t        j                  |fi |} | j                  |fi |}|S )z)Read a JSON string into a Notebook object)r   loadsto_notebook)r   skwargsnbs       r   readszJSONReader.reads   s1    ZZ$V$Tb+F+	r   c                H    t        |      }t        |      }t        |      }|S )zConvert a disk-format notebook dict to in-memory NotebookNode

        handles multi-line values as strings, scrubbing of transient values, etc.
        )r   r   r
   )r   dr$   r%   s       r   r"   zJSONReader.to_notebook"   s&    
 q\"R 	r   N)r   r   r   r   r&   r"   r   r   r   r   r      s    !r   r   c                      e Zd ZdZd Zy)
JSONWriterzA JSON notebook writer.c                    t         |d<   d|d<   d|d<   d|d<   |j                  dd	       t        j                  |      }|j	                  d
d      rt        |      }t        |      }t        j                  |fi |S )z0Serialize a NotebookNode object as a JSON stringclsr   indentT	sort_keys),z: 
separatorsensure_asciiFr	   )	r   
setdefaultcopydeepcopypopr	   r
   r   dumps)r   r%   r$   s      r   writeszJSONWriter.writes0   s|    $ux"{*|.%0]]2::mT*RBR zz"'''r   N)r   r   r   r   r7   r   r   r   r*   r*   -   s
    !(r   r*   )r   
__future__r   r3   r   nbformat.notebooknoder   rwbaser   r   r   r	   r
   r   r   r   r*   _reader_writerr&   readr"   writer7   r   r   r   <module>r?      s    . #   + ^ ^34## 3 (( ($ ,
,||!!	r   