ó
'=[c           @   sî   d  Z  d d l Z d d l Z d d l m Z d d l m Z d d l m Z m	 Z	 m
 Z
 m Z m Z d e j f d	     YZ d
 e f d     YZ d e	 f d     YZ e   Z e   Z e j Z e j Z e j Z e j Z e j Z d S(   s(   Read and write notebooks in JSON format.iĸĸĸĸN(   t	   py3compati   (   t	   from_dicti   (   t   NotebookReadert   NotebookWritert   rejoin_linest   split_linest   strip_transientt   BytesEncoderc           B   s   e  Z d  Z d   Z RS(   s@   A JSON encoder that accepts b64 (and other *ascii*) bytestrings.c         C   s/   t  | t  r | j d  St j j |  |  S(   Nt   ascii(   t
   isinstancet   bytest   decodet   jsont   JSONEncodert   default(   t   selft   obj(    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyR      s    (   t   __name__t
   __module__t   __doc__R   (    (    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyR      s   t
   JSONReaderc           B   s   e  Z d    Z d   Z RS(   c         K   s(   t  j | |  } |  j | |  } | S(   s)   Read a JSON string into a Notebook object(   R   t   loadst   to_notebook(   R   t   st   kwargst   nb(    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyt   reads   s    c         K   s(   t  |  } t |  } t |  } | S(   sĄ   Convert a disk-format notebook dict to in-memory NotebookNode
        
        handles multi-line values as strings, scrubbing of transient values, etc.
        (   R   R   R   (   R   t   dR   R   (    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyR   !   s    (   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyR      s   	t
   JSONWriterc           B   s   e  Z d    Z RS(   c         K   s   t  | d <d | d <t | d <d | d <| j d t  t j |  } | j d	 t  rh t |  } n  t |  } t	 j
 t j | |  d
  S(   s0   Serialize a NotebookNode object as a JSON stringt   clsi   t   indentt	   sort_keyst   ,s   : t
   separatorst   ensure_asciiR   s   utf-8(   R    s   : (   R   t   Truet
   setdefaultt   Falset   copyt   deepcopyt   popR   R   R    t   cast_unicode_py2R   t   dumps(   R   R   R   (    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyt   writes.   s    



(   R   R   R+   (    (    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyR   ,   s   (   R   R&   R   t   ipython_genutilsR    t   notebooknodeR   t   rwbaseR   R   R   R   R   R   R   R   R   t   _readert   _writerR   t   readR   t   writeR+   (    (    (    s1   lib/python2.7/site-packages/nbformat/v4/nbjson.pyt   <module>   s   (						