
    Ud                     *   d 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.    N   )	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     4/usr/lib/python3/dist-packages/nbformat/v3/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                 n    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   s;    ZZ$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    IaL))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<   t        j                  |      }t        |      }|j	                  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)   sl    $ux"{*|]]2R ::mT*RBzz"'''r   N)r   r   r   r   r4   r   r   r   r)   r)   &   s
    !
(r   r)   )r   r0   r   nbbaser   rwbaser   r   r   r   r	   r   r   r   r)   _reader_writerr%   readr!   writer4   r   r   r   <module>r;      s    .
    ^ ^34## 3* *( (  ,
,||!!	r   