o
    tf                     @  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   Zvalidate_orig r   [/var/www/html/software/conda/envs/catlas/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   sourceZoutputsZ	code_cellr   random_cell_idr!   r
   r.   r"   cellr   r   r   new_code_cellu   s   

r3   c                 K  ,   t t d| t  d}|| t|d |S )zCreate a new markdown cellmarkdownr,   r-   r.   r   Zmarkdown_cellr/   r1   r   r   r   new_markdown_cell      

r7   c                 K  r4   )zCreate a new raw cellrawr6   Zraw_cellr/   r1   r   r   r   new_raw_cell   r8   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   
r>   )N)r   )__doc__
__future__r   Znbformat.corpus.wordsr   r0   Znbformat.notebooknoder   r   r;   Znbformat_schemar
   r$   r*   r3   r7   r:   r>   r   r   r   r   <module>   s*    



,

