U
    kuf                     @  s~   d Z ddlmZ ddlm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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.
The functions in this module are merely
helpers to build the structs in the right form.

Authors:

* Brian Granger
    )annotations)Structc                   @  s   e Zd ZdZdS )NotebookNodezA notebook node object.N)__name__
__module____qualname____doc__ r	   r	   6/tmp/pip-unpacked-wheel-zj9qk9v2/nbformat/v2/nbbase.pyr       s   r   c                 C  sR   t | tr2t }|  D ]\}}t|||< q|S t | ttfrNdd | D S | S )z%Create notebook node(s) from a value.c                 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)dnewdkvr	   r	   r
   r   $   s    
r   Nc                 C  s  t  }| dk	rt| |_| dkr|dk	r2t||_|dk	rDt||_|dk	rVt||_|dk	rht||_|dk	rzt||_|dk	rt||_	|dk	rt||_
|dk	rt||_| dkr|	dk	rt|	|_| dkr|
dk	rt|
|_|dk	rt||_|dk	rdd t|D |_|S ),Create a new code cell with input and outputNZpyerrZpyoutc                 S  s   g | ]}t |qS r	   )str)r   framer	   r	   r
   r   _   s     znew_output.<locals>.<listcomp>)r   r   output_typetextbytesZpngZjpeghtmlsvgZlatexjsonZ
javascriptintprompt_numberetypeevaluer   	traceback)r   Zoutput_textZ
output_pngZoutput_htmlZ
output_svgZoutput_latexZoutput_jsonZoutput_javascriptZoutput_jpegr"   r#   r$   r%   outputr	   r	   r
   
new_output0   s<    













r'   pythonFc                 C  sn   t  }d|_|dk	rt||_| dk	r0t| |_|dk	rBt||_|dkrRg |_n||_|dk	rjt||_	|S )r   codeN)
r   	cell_typer   languageinputr!   r"   outputsbool	collapsed)r,   r"   r-   r+   r/   cellr	   r	   r
   new_code_celld   s    



r1   c                 C  s4   t  }|dk	rt||_|dk	r*t||_| |_|S )zCreate a new text cell.N)r   r   sourcerenderedr*   )r*   r2   r3   r0   r	   r	   r
   new_text_cell~   s    

r4   c                 C  s6   t  }| dk	rt| |_|dkr(g |_n
t||_|S )z5Create a worksheet by name with with a list of cells.N)r   r   namecellsr   )r5   r6   wsr	   r	   r
   new_worksheet   s    

r8   c                 C  sF   t  }d|_|dkrg |_n
t||_| dkr8t |_n
t | |_|S )z7Create a notebook by name, id and a list of worksheets.   N)r   Znbformat
worksheetsr   new_metadatametadata)r<   r:   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   r5   r   authorscreatedmodifiedlicensegistid)r5   r?   rB   r@   rA   rC   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   r5   emailaffiliationurl)r5   rD   rE   rF   authorr	   r	   r
   
new_author   s    



rH   )NNNNNNNNNNNNN)NNNr(   F)NN)NN)NN)NNNNNN)NNNN)r   
__future__r   Znbformat._structr   r   r   r'   r1   r4   r8   r>   r;   rH   r	   r	   r	   r
   <module>   sF                
5     



      
