o
    i                     @   s~   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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.
   )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) r	   nbformat)noder
   validate_orig r   M/var/www/edux/Edux_v2/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stdoutr   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_msgH   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   

r5   c                 K   ,   t t d| t  d}|| t|d |S )zCreate a new markdown cellmarkdownr,   r-   r.   r   markdown_cellr1   r3   r   r   r   new_markdown_cell      

r:   c                 K   r6   )zCreate a new raw cellrawr8   raw_cellr1   r3   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   
rB   )N)r   )__doc__corpus.wordsr   r2   notebooknoder   r   r?   nbformat_schemar	   r$   r*   r5   r:   r>   rB   r   r   r   r   <module>   s(    


-

