
    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)zDRead and write notebooks in JSON format.

Authors:

* Brian Granger
    )annotationsN   )	from_dict)NotebookReaderNotebookWriterrejoin_linesrestore_bytessplit_linesc                      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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/v2/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Convert a string to a notebook.)r   loadsto_notebook)r   skwargsnbs       r   readszJSONReader.reads,   s1    ZZ$V$Tb+F+	r   c                <    t        t        t        |                  S r!   )r	   r   r   )r   dr%   s      r   r#   zJSONReader.to_notebook2   s    \)A,788r   N)r   r   r   r   r'   r#   r   r   r   r   r   )   s    !9r   r   c                      e Zd ZdZd Zy)
JSONWriterzA JSON notebook writer.c                    t         |d<   d|d<   d|d<   |j                  dd      rt        t        j                  |            }t        j                  |fi |S )z&Convert a notebook object to a string.clsr   indentT	sort_keysr
   )r   popr
   copydeepcopyr   dumps)r   r&   r%   s      r   writeszJSONWriter.writes:   sT    $ux"{::mT*T]]2./Bzz"'''r   N)r   r   r   r   r4   r   r   r   r+   r+   7   s
    !(r   r+   )r   
__future__r   r1   r   nbbaser   rwbaser   r   r   r	   r
   r   r   r   r+   _reader_writerr'   readr#   writer4   r   r   r   <module>r<      s   " #    \ \34## 39 9
( 
( ,
,||!!	r   