B
    '=[                 @   s   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 dejZG dd	 d	eZG d
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 )zDRead and write notebooks in JSON format.

Authors:

* Brian Granger
    N   )	from_dict)NotebookReaderNotebookWriterrestore_bytesrejoin_linessplit_linesc               @   s   e Zd ZdZdd ZdS )BytesEncoderz@A JSON encoder that accepts b64 (and other *ascii*) bytestrings.c             C   s"   t |tr|dS tj| |S )Nascii)
isinstancebytesdecodejsonJSONEncoderdefault)selfobj r   1lib/python3.7/site-packages/nbformat/v2/nbjson.pyr   !   s    

zBytesEncoder.defaultN)__name__
__module____qualname____doc__r   r   r   r   r   r	      s   r	   c               @   s   e Zd Zdd Zdd ZdS )
JSONReaderc             K   s    t j|f|}| j|f|}|S )N)r   loadsto_notebook)r   skwargsnbr   r   r   reads)   s    zJSONReader.readsc             K   s   t tt|S )N)r   r   r   )r   dr   r   r   r   r   .   s    zJSONReader.to_notebookN)r   r   r   r   r   r   r   r   r   r   '   s   r   c               @   s   e Zd Zdd ZdS )
JSONWriterc             K   s@   t |d< d|d< d|d< |ddr2tt|}tj|f|S )Nclsr   indentTZ	sort_keysr   )r	   popr   copydeepcopyr   dumps)r   r   r   r   r   r   writes4   s    zJSONWriter.writesN)r   r   r   r(   r   r   r   r   r!   2   s   r!   )r   r%   r   Znbbaser   Zrwbaser   r   r   r   r   r   r	   r   r!   Z_readerZ_writerr   readr   writer(   r   r   r   r   <module>   s   