
    f                    |    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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.
    )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                ,    ddl m}  || |t               S )zvalidate a v4 noder   )validate)refversion)nbformatr   )noder   validate_origs      M/var/www/cvtools/html/venv/lib/python3.12/site-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/   I   s     8}Z(H)nG## Z(#$56	
 	
 8 
 	

 >! Z(
 	

 7 '"8$k*	
 	
 7(B
CCr   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   r4   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r2   r3   r4   r   markdown_cellr7   r9   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_cellr7   r9   s      r   new_raw_cellrD      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   rF   r%   r   )r&   nbs     r   new_notebookrI      s4    	%	
B IIfRLIr   )N)r   )__doc__
__future__r   nbformat.corpus.wordsr   r8   nbformat.notebooknoder   r   rF   nbformat_schemar   r(   r/   r;   r@   rD   rI    r   r   <module>rP      sf    # F .   ,''''''::)DX 
r   