o
    ^i                     @  s   d Z ddlm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dZdddZdd Zd ddZd ddZd ddZdd ZdS )!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.
    )annotations)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                 C  s   ddl m} || |t dS )zvalidate a v4 noder   )validate)refversion)nbformatr
   )noder   validate_orig r   M/home/ubuntu/hpml_nyu/venv/lib/python3.10/site-packages/nbformat/v4/nbbase.pyr
   %   s   r
   c                 K  s   t | d}| dkrd|_d|_n*| dkrt  |_t  |_n| dkr-t  |_t  |_d|_n| dkr:d	|_d|_g |_|	| |durF||_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outputr   r   r   
new_output,   s(   



r%   c                 C  s   | d d }| d }|dkrt ||d |d |d dS |d	kr+t ||d
 |d dS |dkr:t ||d |d dS |dkrLt ||d |d |d dS td| )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(   r   r   r   output_from_msgI   s:   r+   r   c                 K  s0   t t dt  d| g d}|| t|d |S )zCreate a new code cellcodeN)id	cell_typer   r   sourceoutputs	code_cellr   random_cell_idr"   r
   r/   r#   cellr   r   r   new_code_cellu   s   

r6   c                 K  ,   t t d| t  d}|| t|d |S )zCreate a new markdown cellmarkdownr-   r.   r/   r   markdown_cellr2   r4   r   r   r   new_markdown_cell      

r;   c                 K  r7   )zCreate a new raw cellrawr9   raw_cellr2   r4   r   r   r   new_raw_cell   r<   r?   c                  K  s(   t ttt  g d}||  t| |S )zCreate a new notebook)r   nbformat_minorr   cells)r   r   r@   r"   r
   )r#   nbr   r   r   new_notebook   s   
rC   )N)r   )__doc__
__future__r   nbformat.corpus.wordsr   r3   nbformat.notebooknoder   r   r@   nbformat_schemar
   r%   r+   r6   r;   r?   rC   r   r   r   r   <module>   s*    



,

