Ë
    :vžjº  ã                  óÔ   — d Z ddlmZ ddlZddlmZ dZdZddiZ G d„ d	e«      Z	d
„ Z
d„ Zd„ Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 dd„Zdd„Zy)zõThe basic dict based notebook format.

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.
é    )ÚannotationsN)ÚStructé   )r   r   znbformat.v3.schema.jsonc                  ó   — e Zd ZdZy)ÚNotebookNodezA notebook node object.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úc/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/nbformat/v3/nbbase.pyr   r      s   „ Ú!r   r   c                óò   — t        | t        «      r2t        «       }| j                  «       D ]  \  }}t	        |«      ||<   Œ |S t        | t
        t        f«      r| D �cg c]  }t	        |«      ‘Œ c}S | S c c}w )z'Create notebook node(s) from an object.)Ú
isinstanceÚdictr   ÚitemsÚ	from_dictÚtupleÚlist)ÚdÚnewdÚkÚvÚis        r   r   r      sj   € ä�!”TÔÜ‹~ˆØ—G‘G–I‰DˆAˆqÜ “lˆD�ŠGð àˆÜ�!”eœT�]Ô#Ù&'Ó(¡a ”	˜!• aÑ(Ð(Ø€Hùò )s   ÁA4c                ó2   — t        | t        «      st        ‚| S )zY
    Used to be cast_unicode, add this temporarily to make sure no further breakage.
    )r   ÚstrÚ	TypeError©Úobjs    r   Ústr_passthroughr    +   s   € ô �cœ3ÔÜˆØ€Jr   c                ó®   — t        | t        «      r.t        j                  dt        d¬«       | j                  dd«      S t        | t        «      st        ‚| S )zCast an object as a string.zbA notebook got bytes instead of likely base64 encoded values.The content will likely be corrupted.r   )Ú
stacklevelÚasciiÚreplace)r   ÚbytesÚwarningsÚwarnÚUserWarningÚdecoder   r   r   s    r   Úcast_strr*   4   sL   € ä�#”uÔô 	�‰ð4äØõ		
ð �z‰z˜' 9Ó-Ð-Ü�cœ3ÔÜˆØ€Jr   c                óÊ  — t        «       }t        | «      |_        |€i }t        |t        «      sd}t        |«      ‚| dv r||_        | dk7  r�|�t        |«      |_        |�t        |«      |_
        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        | dk(  r|	�t#        |	«      |_        | dk(  rM|
�t        |
«      |_        |�t        |«      |_        |�'t+        |«      D �cg c]  }t        |«      ‘Œ c}|_        | dk(  r|€dn
t        |«      |_        |S c c}w )zGCreate a new output, to go in the ``cell.outputs`` list of a code cell.zmetadata must be dict>   ÚpyoutÚdisplay_dataÚpyerrr,   ÚstreamÚstdout)r   r   Úoutput_typer   r   r   Úmetadatar    Útextr*   ÚpngÚjpegÚhtmlÚsvgÚlatexÚjsonÚ
javascriptÚintÚprompt_numberÚenameÚevaluer   Ú	tracebackr/   )r1   Úoutput_textÚ
output_pngÚoutput_htmlÚ
output_svgÚoutput_latexÚoutput_jsonÚoutput_javascriptÚoutput_jpegr<   r=   r>   r?   r/   r2   ÚoutputÚmsgÚframes                     r   Ú
new_outputrK   E   sw  € ô$ ‹^€FÜ˜[Ó)€FÔàÐØˆÜ�h¤Ô%Ø%ˆÜ˜‹nÐàÐ/Ñ/Ø"ˆŒà�gÒØÐ"Ü)¨+Ó6ˆFŒKØÐ!Ü! *Ó-ˆFŒJØÐ"Ü" ;Ó/ˆFŒKØÐ"Ü)¨+Ó6ˆFŒKØÐ!Ü(¨Ó4ˆFŒJØÐ#Ü*¨<Ó8ˆFŒLØÐ"Ü)¨+Ó6ˆFŒKØÐ(Ü /Ð0AÓ BˆFÔà�gÒ -Ð";Ü" =Ó1ˆÔà�gÒØÐÜ*¨5Ó1ˆFŒLØÐÜ+¨FÓ3ˆFŒMØÐ ÜDHÈÄOÓTÁO¸5¤°Õ 6ÀOÑTˆFÔà�hÒØ$* N™¼ÈÓ8OˆŒà€Mùò  Us   Ä+E c                ó  — t        «       }d|_        |�t        |«      |_        | �t        | «      |_        |�t        |«      |_        |€g |_        n||_        |�t        |«      |_	        t        |xs i «      |_
        |S )z,Create a new code cell with input and outputÚcode)r   Ú	cell_typer    ÚlanguageÚinputr;   r<   ÚoutputsÚboolÚ	collapsedr2   )rP   r<   rQ   rO   rS   r2   Úcells          r   Únew_code_cellrU   †   s‚   € ô ‹>€DØ€D„NØÐÜ'¨Ó1ˆŒØÐÜ$ UÓ+ˆŒ
ØÐ Ü  Ó/ˆÔØ€Øˆ�àˆŒØÐÜ˜i›ˆŒÜ  ¢¨RÓ0€D„Mà€Kr   c                ó‚   — t        «       }| dk(  rd} |�t        |«      |_        t        |xs i «      |_        | |_        |S )zCreate a new text cell.Ú	plaintextÚraw)r   r    Úsourcer2   rN   )rN   rY   Úrenderedr2   rT   s        r   Únew_text_cellr[   ¢   sF   € ä‹>€Dð �KÒØˆ	ØÐÜ% fÓ-ˆŒÜ  ¢¨RÓ0€D„MØ€D„NØ€Kr   c                ó”   — t        «       }d|_        | �t        | «      |_        t	        |«      |_        t        |xs i «      |_        |S )z5Create a new section cell with a given integer level.Úheading)r   rN   r    rY   r;   Úlevelr2   )rY   r^   rZ   r2   rT   s        r   Únew_heading_cellr_   °   sB   € ä‹>€DØ€D„NØÐÜ% fÓ-ˆŒÜ�U“€D„JÜ  ¢¨RÓ0€D„MØ€Kr   c                óv   — t        «       }|€g |_        nt        |«      |_        t        |xs i «      |_        |S )z5Create a worksheet by name with with a list of cells.)r   Úcellsr   r2   )Únamera   r2   Úwss       r   Únew_worksheetrd   »   s5   € ä	‹€BØ€}Øˆ�ä˜“;ˆŒÜ˜xš~¨2Ó.€B„KØ€Ir   c                óö   — t        «       }t        |_        t        |_        |€g |_        nt	        |«      |_        |€t        «       |_        nt        |«      |_        | �t        | «      |j                  _        |S )z7Create a notebook by name, id and a list of worksheets.)	r   ÚnbformatÚnbformat_minorÚ
worksheetsr   Únew_metadatar2   r    rb   )rb   r2   rh   Únbs       r   Únew_notebookrk   Æ   sh   € ä	‹€BÜ€B„KÜ&€BÔØÐØˆ�ä˜ZÓ(ˆŒØÐÜ"“nˆ�ä" 8Ó,ˆŒØÐÜ*¨4Ó0ˆ�‰ÔØ€Ir   c                óò   — t        «       }| �t        | «      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |S )zCreate a new metadata node.)	r   r    rb   r   ÚauthorsÚcreatedÚmodifiedÚlicenseÚgistid)rb   rm   rp   rn   ro   rq   r2   s          r   ri   ri   Ø   s   € ô ‹~€HØÐÜ'¨Ó-ˆŒØÐÜ ›=ˆÔØÐÜ*¨7Ó3ˆÔØÐÜ+¨HÓ5ˆÔØÐÜ*¨7Ó3ˆÔØÐÜ)¨&Ó1ˆŒØ€Or   c                óª   — t        «       }| �t        | «      |_        |�t        |«      |_        |�t        |«      |_        |�t        |«      |_        |S )zCreate a new author.)r   r    rb   ÚemailÚaffiliationÚurl)rb   rs   rt   ru   Úauthors        r   Ú
new_authorrw   ñ   sV   € ä‹^€FØÐÜ% dÓ+ˆŒØÐÜ& uÓ-ˆŒØÐÜ,¨[Ó9ˆÔØ
€Ü$ SÓ)ˆŒ
Ø€Mr   )NNNNNNNNNNNNNN)NNNÚpythonFN)NNN)Né   NN)NNNNNN)NNNN)r   Ú
__future__r   r&   Únbformat._structr   rf   rg   Únbformat_schemar   r   r    r*   rK   rU   r[   r_   rd   rk   ri   rw   r   r   r   Ú<module>r}      sÄ   ðñõ #ã å #ð €Ø€ØÐ4Ð5€ô"�6ô "ò	òòð& ØØØØØØØØØ
ØØØØó>ðD ØØØØØóó8óóóð& 
ØØØØØóô2r   