
    Ud                     p    d Z ddlmZ ddlmZ dZdZdddd	d
dddZddZ	ddZ
d ZddZddZddZd Zy)zPython API for composing notebook elements

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.
    )generate_corpus_id)NotebookNode      znbformat.v4.schema.jsonznbformat.v4.0.schema.jsonznbformat.v4.1.schema.jsonznbformat.v4.2.schema.jsonznbformat.v4.3.schema.jsonznbformat.v4.4.schema.jsonznbformat.v4.5.schema.json))NN)r   r   )r      )r      )r      )r   r   )r   r   Nc                 ,    ddl m}  || |t               S )zvalidate a v4 noder   )validate)refversion)nbformatr   )noder   validate_origs      4/usr/lib/python3/dist-packages/nbformat/v4/nbbase.pyr   r   $   s    2399    c                 d   t        |       }| dk(  rd|_        d|_        ni| dk(  rt               |_        t               |_        nE| dk(  r&t               |_        t               |_        d|_        n| dk(  rd	|_        d|_        g |_        |j                  |       |||_        t        ||        |S )
zGCreate a new output, to go in the ``cell.outputs`` list of a code cell.)output_typestreamstdout display_dataexecute_resultNerrorNotImplementedError)r   nametextmetadatadataexecution_countenameevalue	tracebackupdater   )r   r   kwargsoutputs       r   
new_outputr'   +   s    k2F h		&&."n	(	(&."n!%		, MM&V[!Mr   c                    | d   d   }| d   }|dk(  rt        ||d   |d   |d         S |d	k(  rt        ||d
   |d         S |dk(  rt        ||d   |d         S |dk(  rt        ||d   |d   |d         S t        d|z        )zCreate a NotebookNode for an output from a kernel's IOPub message.

    Returns
    -------
    NotebookNode: the output as a notebook node.

    Raises
    ------
    ValueError: if the message is not an output message.

    headermsg_typecontentr   r   r   r    )r   r   r   r    r   r   r   )r   r   r   r   )r   r   r   r   r!   r"   r#   )r   r!   r"   r#   z Unrecognized output msg type: %r)r'   
ValueError)msgr*   r+   s      r   output_from_msgr.   H   s     8}Z(H)nG## Z(#$56	
 	
 
X	 
 	

 
^	# Z(
 	

 
W	 '"8$k*	
 	
 ;hFGGr   c                     t        t               dt               d| g       }|j                  |       t        |d       |S )zCreate a new code cellcodeN)id	cell_typer   r    sourceoutputs	code_cellr   random_cell_idr$   r   r3   r%   cells      r   new_code_cellr:   u   s@    D 	KKT;Kr   c                 ~    t        t               d| t                     }|j                  |       t        |d       |S )zCreate a new markdown cellmarkdownr1   r2   r3   r   markdown_cellr6   r8   s      r   new_markdown_cellr?      s:    	D 	KKT?#Kr   c                 ~    t        t               d| t                     }|j                  |       t        |d       |S )zCreate a new raw cellrawr=   raw_cellr6   r8   s      r   new_raw_cellrC      s:    	D 	KKT:Kr   c                  |    t        t        t        t               g       }|j                  |        t	        |       |S )zCreate a new notebook)r   nbformat_minorr   cells)r   r   rE   r$   r   )r%   nbs     r   new_notebookrH      s4    	%	
B IIfRLIr   )N)r   )__doc__nbformat.corpus.wordsr   r7   nbformat.notebooknoder   r   rE   nbformat_schemar   r'   r.   r:   r?   rC   rH    r   r   <module>rN      sd    G .   ,''''''::*HZ 
r   