ó
‹'=[c           @   s  d  Z  d d l m Z m Z d d l Z d d l m Z d d l m	 Z	 d d l
 m Z m Z d d l m Z m Z m Z m Z m Z m Z d	 d
 „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ e ƒ  Z e j Z e j  Z  e j! Z! d S(   sA   Read and write notebook files as XML.

Authors:

* Brian Granger
iÿÿÿÿ(   t   encodestringt   decodestringN(   t   ElementTree(   t   unicode_typei   (   t   NotebookReadert   NotebookWriter(   t   new_code_cellt   new_text_cellt   new_worksheett   new_notebookt
   new_outputt   new_metadatai    c         C   så   d | d } t  |  ƒ rµ |  j s4 |  j j ƒ  rD | d |  _ n  |  j s^ |  j j ƒ  rj | |  _ n  x |  D] }  t |  | d ƒ qq W|  j s¦ |  j j ƒ  rá | |  _ qá n, | rá |  j sÕ |  j j ƒ  rá | |  _ n  d  S(   Ns   
s     i   (   t   lent   textt   stript   tailt   indent(   t   elemt   levelt   i(    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyR   "   s     c         C   s*   |  j  | ƒ } | d  k r d  S| j Sd  S(   N(   t   findt   NoneR   (   t   et   tagt   sub_e(    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt	   _get_text2   s    c         C   s2   | |  k r. t  j | | ƒ } |  | | _ n  d  S(   N(   t   ETt
   SubElementR   (   t   nbnodet   attrt   parentR   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt	   _set_text:   s    c         C   s0   |  j  | ƒ } | d  k r d  St | j ƒ Sd  S(   N(   R   R   t   intR   (   R   R   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt   _get_int@   s    c         C   s8   | |  k r4 t  j | | ƒ } t |  | ƒ | _ n  d  S(   N(   R   R   R   R   (   R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt   _set_intH   s    c         C   s6   |  j  | ƒ } | d  k r d  St t | j ƒ ƒ Sd  S(   N(   R   R   t   boolR    R   (   R   R   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt	   _get_boolN   s    c         C   sD   | |  k r@ t  j | | ƒ } |  | r4 d | _ q@ d | _ n  d  S(   Nu   1u   0(   R   R   R   (   R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt	   _set_boolV   s
    
c         C   s0   |  j  | ƒ } | d  k r d  St | j ƒ Sd  S(   N(   R   R   R   R   (   R   R   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt   _get_binary_   s    c         C   s8   | |  k r4 t  j | | ƒ } t |  | ƒ | _ n  d  S(   N(   R   R   R    R   (   R   R   R   R   R   (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt   _set_binaryg   s    t	   XMLReaderc           B   s   e  Z d  „  Z d „  Z RS(   c         K   s   t  j | ƒ } |  j | |  S(   N(   R   t
   fromstringt   to_notebook(   t   selft   st   kwargst   root(    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt   readso   s    c   *      K   sÜ  t  j d t ƒ t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } g  }	 xA| j d ƒ j d	 ƒ D]'}
 t |
 d ƒ } g  } xç|
 j d
 ƒ j ƒ  D]Ð} | j d k rìt | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } g  } x¡| j d ƒ j d ƒ D]‡} t | d ƒ } t | d ƒ } t	 | d ƒ } t	 | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } t | d ƒ } g  }  | j d ƒ }! |! d  k	 r2x* |! j d ƒ D] }" |  j |" j ƒ qWn  t |  ƒ d k rMd  }  n  t d  | d! | d" | d# | d$ | d% | d& | d' | d( | d) | d* | d+ | d, |  ƒ }# | j |# ƒ q*Wt d- | d) | d. | d/ | d0 | ƒ }$ | j |$ ƒ n  | j d1 k r;t | d2 ƒ }% t | d3 ƒ }& | j t d d4 |% d5 |& ƒƒ n  | j d6 k rº t | d2 ƒ }% t | d3 ƒ }& | j t d7 d4 |% d5 |& ƒƒ qº qº Wt d8 | d9 | ƒ }' |	 j |' ƒ q‰ Wt d8 | ƒ }( t d: |( d; |	 ƒ }) |) S(<   NsV   The XML notebook format is no longer supported, please convert your notebooks to JSON.u   nameu   authoru   emailu   licenseu   createdu   savedu
   worksheetsu	   worksheetu   cellsu   codecellu   inputu   prompt_numberu	   collapsedu   languageu   outputsu   outputu   output_typeu   textu   pngu   jpegu   svgu   htmlu   latexu   jsonu
   javascriptu   etypeu   evalueu	   tracebacku   framei    t   output_typet
   output_pngt   output_textt
   output_svgt   output_htmlt   output_latext   output_jsont   output_javascriptt   output_jpegt   prompt_numbert   etypet   evaluet	   tracebackt   inputt   languaget   outputst	   collapsedu   htmlcellu   sourceu   renderedt   sourcet   renderedu   markdowncellu   markdownt   namet   cellst   metadatat
   worksheets(   t   warningst   warnt   DeprecationWarningR   R   t   getiteratorR   R!   R$   R&   R   t   appendR   R   R
   R   R   R   R   R	   (*   R+   R.   R-   t   nbnamet   nbauthort   nbemailt	   nblicenset	   nbcreatedt   nbsavedRF   t   ws_et   wsnameRD   t   cell_eR=   R9   R@   R>   R?   t   output_eR0   R2   R1   R8   R3   R4   R5   R6   R7   t   out_prompt_numberR:   R;   R<   t   traceback_et   frame_et   outputt   ccRA   RB   t   wst   mdt   nb(    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyR*   s   s|    		"&(   t   __name__t
   __module__R/   R*   (    (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyR(   m   s   	("   t   __doc__t   base64R    R   RG   t	   xml.etreeR   R   t   ipython_genutils.py3compatR   t   rwbaseR   R   t   nbbaseR   R   R   R	   R
   R   R   R   R   R!   R"   R$   R%   R&   R'   R(   t   _readerR/   t   readR*   (    (    (    s0   lib/python2.7/site-packages/nbformat/v2/nbxml.pyt   <module>   s(   .										K			