B
    '=[                 @   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	d
Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZG dd deZe ZejZej Z ej!Z!dS )zARead and write notebook files as XML.

Authors:

* Brian Granger
    )encodestringdecodestringN)ElementTree)unicode_type   )NotebookReaderNotebookWriter)new_code_cellnew_text_cellnew_worksheetnew_notebook
new_outputnew_metadatac             C   s   d|d  }t | rx| jr$| j s.|d | _| jr>| j sD|| _x| D ]} t| |d  qJW | jrp| j s|| _n|r| jr| j s|| _d S )N
z  r   )lentextstriptailindent)elemleveli r   0lib/python3.7/site-packages/nbformat/v2/nbxml.pyr   "   s    

r   c             C   s    |  |}|d krd S |jS d S )N)findr   )etagsub_er   r   r   	_get_text2   s    
r   c             C   s"   || krt ||}| | |_d S )N)ET
SubElementr   )nbnodeattrparentr   r   r   r   r   	_set_text:   s    r$   c             C   s$   |  |}|d krd S t|jS d S )N)r   intr   )r   r   r   r   r   r   _get_int@   s    
r&   c             C   s&   || kr"t ||}t| | |_d S )N)r   r    r   r   )r!   r"   r#   r   r   r   r   r   _set_intH   s    r'   c             C   s(   |  |}|d krd S tt|jS d S )N)r   boolr%   r   )r   r   r   r   r   r   	_get_boolN   s    
r)   c             C   s.   || kr*t ||}| | r$d|_nd|_d S )N10)r   r    r   )r!   r"   r#   r   r   r   r   r   	_set_boolV   s
    r,   c             C   s$   |  |}|d krd S t|jS d S )N)r   r   r   )r   r   r   r   r   r   _get_binary_   s    
r-   c             C   s&   || kr"t ||}t| | |_d S )N)r   r    r   r   )r!   r"   r#   r   r   r   r   r   _set_binaryg   s    r.   c               @   s   e Zd Zdd Zdd ZdS )	XMLReaderc             K   s   t |}| j|f|S )N)r   Z
fromstringto_notebook)selfskwargsrootr   r   r   readso   s    
zXMLReader.readsc       *      K   s  t dt t|d}t|d}t|d}t|d}t|d}t|d}g }	x |dd	D ]
}
t|
d}g }x|
d
 D ]}|jdkrt|d}t|d}t|d}t|d}g }x|d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 } |d}!|!d k	rx |!dD ]}"| 
|"j qxW t| dkrd } t||||||||||||| d }#|
|# qW t|||||d!}$|
|$ |jd"kr t|d#}%t|d$}&|
td|%|&d% |jd&krt|d#}%t|d$}&|
td'|%|&d% qW t||d(}'|	
|' q`W t|d)}(t|(|	d*})|)S )+NzVThe XML notebook format is no longer supported, please convert your notebooks to JSON.nameZauthorZemaillicenseZcreatedZsaved
worksheetsZ	worksheetcellsZcodecellinputprompt_number	collapsedlanguageoutputsoutputoutput_typer   ZpngZjpegZsvgZhtmlZlatexZjsonZ
javascriptetypeevalue	tracebackframer   )r@   
output_pngoutput_text
output_svgoutput_htmloutput_latexoutput_jsonoutput_javascriptoutput_jpegr;   rA   rB   rC   )r:   r;   r=   r>   r<   Zhtmlcellsourcerendered)rM   rN   ZmarkdowncellZmarkdown)r6   r9   )r6   )Zmetadatar8   )warningswarnDeprecationWarningr   r   Zgetiteratorr   r&   r)   r-   appendr   r   r   r	   r
   r   r   r   )*r1   r4   r3   ZnbnameZnbauthorZnbemailZ	nblicenseZ	nbcreatedZnbsavedr8   Zws_eZwsnamer9   Zcell_er:   r;   r<   r=   r>   Zoutput_er@   rF   rE   rL   rG   rH   rI   rJ   rK   Zout_prompt_numberrA   rB   rC   Ztraceback_eZframe_er?   ZccrM   rN   ZwsZmdZnbr   r   r   r0   s   s|    































zXMLReader.to_notebookN)__name__
__module____qualname__r5   r0   r   r   r   r   r/   m   s   r/   )r   )"__doc__base64r   r   rO   Z	xml.etreer   r   Zipython_genutils.py3compatr   Zrwbaser   r   Znbbaser	   r
   r   r   r   r   r   r   r$   r&   r'   r)   r,   r-   r.   r/   Z_readerr5   readr0   r   r   r   r   <module>   s(    	
	K