B
    '=[i                 @   s   d Z ddlZddlZddlmZ ddlmZmZ dZdZ	dZ
G dd deZd	d
 ZdddZdddZd ddZd!ddZd"ddZd#ddZd$ddZd%ddZdS )&a  The basic dict based notebook format.

The Python representation of a notebook is a nested structure of
dictionary subclasses that support attribute access
(ipython_genutils.ipstruct.Struct). The functions in this module are merely
helpers to build the structs in the right form.
    N)Struct)cast_unicodeunicode_type   znbformat.v3.schema.jsonc               @   s   e Zd ZdS )NotebookNodeN)__name__
__module____qualname__ r
   r
   1lib/python3.7/site-packages/nbformat/v3/nbbase.pyr      s   r   c             C   sZ   t | tr6t }x |  D ]\}}t|||< qW |S t | ttfrRdd | D S | S d S )Nc             S   s   g | ]}t |qS r
   )	from_dict).0ir
   r
   r   
<listcomp>&   s    zfrom_dict.<locals>.<listcomp>)
isinstancedictr   itemsr   tuplelist)dZnewdkvr
   r
   r   r      s    
r   c             C   sd  t  }t| |_|dkri }t|ts.td| dkr<||_| dkr|dk	rVt||_|dk	rht||_	|dk	rzt||_
|dk	rt||_|dk	rt||_|dk	rt||_|dk	rt||_|dk	rt||_| dkr|	dk	rt|	|_| dkr>|
dk	rt|
|_|dk	r t||_|dk	r>dd t|D |_| dkr`|dkrVd	nt||_|S )
zLCreate a new output, to go in the ``cell.outputs`` list of a code cell.
    Nzmetadata must be dict>   pyoutdisplay_dataZpyerrr   c             S   s   g | ]}t |qS r
   )r   )r   framer
   r
   r   r   Y   s    znew_output.<locals>.<listcomp>streamstdout)r   r   output_typer   r   	TypeErrormetadatar   textZpngZjpegZhtmlZsvgZlatexZjsonZ
javascriptintprompt_numberenameevaluer   	tracebackr   )r   Zoutput_textZ
output_pngZoutput_htmlZ
output_svgZoutput_latexZoutput_jsonZoutput_javascriptZoutput_jpegr"   r#   r$   r%   r   r   outputr
   r
   r   
new_output+   sL    

















r'   pythonFc             C   s|   t  }d|_|dk	rt||_| dk	r0t| |_|dk	rBt||_|dkrRg |_n||_|dk	rjt||_	t |pri |_
|S )z,Create a new code cell with input and outputcodeN)r   	cell_typer   languageinputr!   r"   outputsbool	collapsedr   )r,   r"   r-   r+   r/   r   cellr
   r
   r   new_code_cella   s    



r1   c             C   s<   t  }| dkrd} |dk	r$t||_t |p,i |_| |_|S )zCreate a new text cell.Z	plaintextrawN)r   r   sourcer   r*   )r*   r3   renderedr   r0   r
   r
   r   new_text_cellv   s    
r5      c             C   s:   t  }d|_| dk	rt| |_t||_t |p0i |_|S )z5Create a new section cell with a given integer level.ZheadingN)r   r*   r   r3   r!   levelr   )r3   r7   r4   r   r0   r
   r
   r   new_heading_cell   s    

r8   c             C   s2   t  }|dkrg |_n
t||_t |p(i |_|S )z5Create a worksheet by name with with a list of cells.N)r   cellsr   r   )namer9   r   Zwsr
   r
   r   new_worksheet   s    
r;   c             C   s`   t  }t|_t|_|dkr"g |_n
t||_|dkr>t |_n
t ||_| dk	r\t| |j_|S )z7Create a notebook by name, id and a list of worksheets.N)	r   nbformatnbformat_minor
worksheetsr   new_metadatar   r   r:   )r:   r   r>   Znbr
   r
   r   new_notebook   s    


r@   c             C   sv   t  }| dk	rt| |_|dk	r*t||_|dk	r<t||_|dk	rNt||_|dk	r`t||_|dk	rrt||_|S )zCreate a new metadata node.N)	r   r   r:   r   authorscreatedmodifiedlicensegistid)r:   rA   rD   rB   rC   rE   r   r
   r
   r   r?      s    





r?   c             C   sR   t  }| dk	rt| |_|dk	r*t||_|dk	r<t||_|dk	rNt||_|S )zCreate a new author.N)r   r   r:   emailaffiliationurl)r:   rF   rG   rH   Zauthorr
   r
   r   
new_author   s    



rI   )NNNNNNNNNNNNNN)NNNr(   FN)NNN)Nr6   NN)NNN)NNN)NNNNNN)NNNN)__doc__ZpprintZuuidZipython_genutils.ipstructr   Zipython_genutils.py3compatr   r   r<   r=   Znbformat_schemar   r   r'   r1   r5   r8   r;   r@   r?   rI   r
   r
   r
   r   <module>   s,      
3 




 
