§
    �Ÿj  ã                  ó4  — d Z ddlmZ ddlZddlmZmZmZmZm	Z	m
Z
mZ ddlmZmZ  ej        d¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z e¦   «         Z e¦   «         Zej        Zej        Zej        Zej        Zej        ZdS )zJRead and write notebooks as regular .py files.

Authors:

* Brian Granger
é    )ÚannotationsNé   )ÚnbformatÚnbformat_minorÚnew_code_cellÚnew_heading_cellÚnew_notebookÚnew_text_cellÚnew_worksheet)ÚNotebookReaderÚNotebookWriterz^#.*coding[:=]\s*([-\w.]+)c                  ó   — e Zd ZdZdS )ÚPyReaderErrorz%An error raised for a pyreader error.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú]/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbformat/v3/nbpy.pyr   r   (   s   € € € € € Ø/Ð/Ð/Ð/r   r   c                  ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚPyReaderzA python notebook reader.c                ó   —  | j         |fi |¤ŽS )úConvert a string to a notebook)Úto_notebook)ÚselfÚsÚkwargss      r   ÚreadszPyReader.reads/   s   € àˆtÔ Ð,Ð, VÐ,Ð,Ð,r   c                óž  — |                      ¦   «         }g }g }i }d}|D �]Ø}|                     d¦  «        st                               |¦  «        rŒ3|                     d¦  «        r- | j        ||fi |¤Ž}|�|                     |¦  «         d}g }i }Œu|                     d¦  «        r- | j        ||fi |¤Ž}|�|                     |¦  «         d}g }i }Œ·|                     d¦  «        r- | j        ||fi |¤Ž}|�|                     |¦  «         d}g }i }Œù|                     d	¦  «        r. | j        ||fi |¤Ž}|�|                     |¦  «         d
}g }i }�Œ<|                     d¦  «        rr | j        ||fi |¤Ž}|�|                     |¦  «         g }t          j        d|¦  «        }	|	�+d}i }t          |	                     d¦  «        ¦  «        |d<   �Œ»d}i }g }�ŒÃ|                     |¦  «         �ŒÚ|r3|dk    r-|                      ||¦  «        }|�|                     |¦  «         t          |¬¦  «        }
t          |
g¬¦  «        S )r   Úcodecellz# <nbformat>ú# <codecell>Nú# <htmlcell>Úhtmlcellú# <markdowncell>Úmarkdowncell)ú# <rawcell>z# <plaintextcell>Úrawcellz# <headingcellz## <headingcell level=(?P<level>\d)>ÚheadingcellÚlevel)Úcells)Ú
worksheets)Ú
splitlinesÚ
startswithÚ_encoding_declaration_reÚmatchÚnew_cellÚappendÚreÚintÚgroupr   r	   )r   r   r   Úlinesr+   Ú
cell_linesÚstateÚlineÚcellÚmÚwss              r   r   zPyReader.to_notebook3   s×  € à—’‘”ˆØˆØ "ˆ
ØˆØˆØð /	(ñ /	(ˆDØ�Š˜~Ñ.Ô.ð .(Õ2J×2PÒ2PÐQUÑ2VÔ2Vð .(ØØ—’ Ñ0Ô0ð ,(Ø$�t”} U¨JÐAÐA¸&ÐAÐA�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø"�Ø�
Ø��Ø—’ Ñ0Ô0ð %(Ø$�t”} U¨JÐAÐA¸&ÐAÐA�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø"�Ø�
Ø��Ø—’Ð!3Ñ4Ô4ð (Ø$�t”} U¨JÐAÐA¸&ÐAÐA�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø&�Ø�
Ø��à—’Ð!EÑFÔFð (Ø$�t”} U¨JÐAÐA¸&ÐAÐA�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø!�Ø�
Ø�‘Ø—’Ð!1Ñ2Ô2ð (Ø$�t”} U¨JÐAÐA¸&ÐAÐA�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø!#�JÝ”HÐCÀTÑJÔJ�Ø�=Ø)�EØ�FÝ&)¨!¯'ª'°'Ñ*:Ô*:Ñ&;Ô&;�F˜7‘O‘Oà&�EØ�FØ!#�J‘Jà×!Ò! $Ñ'Ô'Ð'Ñ'Øð 	#˜% :Ò-Ð-Ø—=’= ¨
Ñ3Ô3ˆDØÐØ—’˜TÑ"Ô"Ð"Ý Ð'Ñ'Ô'ˆÝ¨ tÐ,Ñ,Ô,Ð,r   c                ó:  — |dk    r>d                      |¦  «        }|                     d¦  «        }|rt          |¬¦  «        S dS |dk    r*|                      |¦  «        }|rt	          d|¬¦  «        S dS |dk    r*|                      |¦  «        }|rt	          d|¬¦  «        S dS |d	k    r*|                      |¦  «        }|rt	          d
|¬¦  «        S dS |dk    r>|                      |¦  «        }|                     dd¦  «        }|rt          ||¬¦  «        S dS dS )zCreate a new cell.r!   ú
)Úinputr$   Úhtml)Úsourcer&   Úmarkdownr(   Úrawr)   r*   r   )rA   r*   N)ÚjoinÚstripr   Ú_remove_commentsr
   Úgetr   )r   r8   r6   r   Úinput_Útextr*   s          r   r1   zPyReader.new_cellq   s|  € à�JÒÐØ—Y’Y˜uÑ%Ô%ˆFØ—\’\ $Ñ'Ô'ˆFØð 3Ý$¨6Ð2Ñ2Ô2Ð2ð3ð 3à�jÒ Ð Ø×(Ò(¨Ñ/Ô/ˆDØð :Ý$ V°DÐ9Ñ9Ô9Ð9ð:ð :à�nÒ$Ð$Ø×(Ò(¨Ñ/Ô/ˆDØð >Ý$ Z¸Ð=Ñ=Ô=Ð=ð>ð >à�iÒÐØ×(Ò(¨Ñ/Ô/ˆDØð 9Ý$ U°4Ð8Ñ8Ô8Ð8ð9ð 9à�mÒ#Ð#Ø×(Ò(¨Ñ/Ô/ˆDØ—J’J˜w¨Ñ*Ô*ˆEØð BÝ'¨t¸5ÐAÑAÔAÐAð	 $Ð#ðBð Br   c                óø   — g }|D ]J}|                      d¦  «        r|                     |dd …         ¦  «         Œ5|                     |¦  «         ŒKd                     |¦  «        }|                     d¦  «        }|S )Nú#é   r>   )r.   r2   rD   rE   )r   r6   Ú	new_linesr9   rI   s        r   rF   zPyReader._remove_commentsŠ   s‡   € Øˆ	Øð 	'ð 	'ˆDØ�Š˜sÑ#Ô#ð 'Ø× Ò   a b b¤Ñ*Ô*Ð*Ð*à× Ò  Ñ&Ô&Ð&Ð&Ø�yŠy˜Ñ#Ô#ˆØ�zŠz˜$ÑÔˆØˆr   c              #  ó  K  — t          |¦  «        dk    r|d         V — t          ¦   «         ‚ddl}d                     |¦  «        }|                     |¦  «        }d„ |j        D ¦   «         }t          t          |¦  «        dz
  ¦  «        D ]C}d                     |||         ||dz            …         ¦  «                             d¦  «        V — ŒDd                     ||d         d…         ¦  «                             d¦  «        V — dS )zSplit lines into code blocks.r   r   Nr>   c                ó"   — g | ]}|j         d z
  ‘ŒS )r   )Úlineno)Ú.0Úxs     r   ú
<listcomp>z4PyReader.split_lines_into_blocks.<locals>.<listcomp>ž   s   € Ð2Ð2Ð2 1�!”(˜Q‘,Ð2Ð2Ð2r   éÿÿÿÿ)ÚlenÚStopIterationÚastrD   ÚparseÚbodyÚrangerE   )r   r6   rW   rA   ÚcodeÚstartsÚis          r   Úsplit_lines_into_blocksz PyReader.split_lines_into_blocks•   s  è è € åˆu‰:Œ:˜Š?ˆ?Ø˜”(ˆNˆNˆNÝ‘/”/Ð!Øˆ
ˆ
ˆ
à—’˜5Ñ!Ô!ˆØ�yŠy˜Ñ Ô ˆØ2Ð2¨¬	Ð2Ñ2Ô2ˆÝ•s˜6‘{”{ Q‘Ñ'Ô'ð 	Jð 	JˆAØ—)’)˜E &¨¤)¨f°Q¸±U¬mÐ";Ô<Ñ=Ô=×CÒCÀDÑIÔIÐIÐIÐIÐIØ�iŠi˜˜f Rœj˜l˜lÔ+Ñ,Ô,×2Ò2°4Ñ8Ô8Ð8Ð8Ð8Ð8Ð8r   N)	r   r   r   r   r   r   r1   rF   r^   r   r   r   r   r   ,   si   € € € € € Ø#Ð#ð-ð -ð -ð<-ð <-ð <-ð|Bð Bð Bð2	ð 	ð 	ð9ð 9ð 9ð 9ð 9r   r   c                  ó   — e Zd ZdZd„ ZdS )ÚPyWriterzA Python notebook writer.c                óø  — dg}|                      dt          t          fz  dg¦  «         |j        D �]Ÿ}|j        D �]“}|j        dk    rk|                     d¦  «        }|�S|                      ddg¦  «         |                      |                     ¦   «         ¦  «         |                     d¦  «         Œy|j        dk    ru|                     d	¦  «        }|�]|                      d
dg¦  «         |                      d„ |                     ¦   «         D ¦   «         ¦  «         |                     d¦  «         Œù|j        dk    rv|                     d	¦  «        }|�]|                      ddg¦  «         |                      d„ |                     ¦   «         D ¦   «         ¦  «         |                     d¦  «         �Œz|j        dk    rv|                     d	¦  «        }|�]|                      ddg¦  «         |                      d„ |                     ¦   «         D ¦   «         ¦  «         |                     d¦  «         �Œû|j        dk    r�|                     d	¦  «        }|                     dd¦  «        }|�`|                      d|z  dg¦  «         |                      d„ |                     ¦   «         D ¦   «         ¦  «         |                     d¦  «         �Œ•�Œ¡|                     d¦  «         d 	                    |¦  «        S )zConvert a notebook to a string.z# -*- coding: utf-8 -*-z# <nbformat>%i.%i</nbformat>Ú r[   r?   Nr"   r@   rA   r#   c                ó   — g | ]}d |z   ‘ŒS ©z# r   ©rQ   r9   s     r   rS   z#PyWriter.writes.<locals>.<listcomp>¼   ó   € Ð%RÐ%RÐ%R°d d¨T¡kÐ%RÐ%RÐ%Rr   rB   r%   c                ó   — g | ]}d |z   ‘ŒS rd   r   re   s     r   rS   z#PyWriter.writes.<locals>.<listcomp>Â   rf   r   rC   r'   c                ó   — g | ]}d |z   ‘ŒS rd   r   re   s     r   rS   z#PyWriter.writes.<locals>.<listcomp>È   rf   r   Úheadingr*   r   z# <headingcell level=%s>c                ó   — g | ]}d |z   ‘ŒS rd   r   re   s     r   rS   z#PyWriter.writes.<locals>.<listcomp>Ï   rf   r   r>   )
Úextendr   r   r,   r+   Ú	cell_typerG   r-   r2   rD   )r   Únbr   r6   r<   r:   rH   r*   s           r   ÚwriteszPyWriter.writes§   s÷  € à*Ð+ˆØ�Šà.µ(½NÐ1KÑKØðñ	
ô 	
ð 	
ð ”-ð  	)ñ  	)ˆBØœð )ñ )�Ø”> VÒ+Ð+Ø!ŸXšX gÑ.Ô.�FØÐ)ØŸš n°bÐ%9Ñ:Ô:Ð:ØŸš V×%6Ò%6Ñ%8Ô%8Ñ9Ô9Ð9ØŸš RÑ(Ô(Ð(øØ”^ vÒ-Ð-Ø!ŸXšX hÑ/Ô/�FØÐ)ØŸš n°bÐ%9Ñ:Ô:Ð:ØŸšÐ%RÐ%R¸f×>OÒ>OÑ>QÔ>QÐ%RÑ%RÔ%RÑSÔSÐSØŸš RÑ(Ô(Ð(øØ”^ zÒ1Ð1Ø!ŸXšX hÑ/Ô/�FØÐ)ØŸšÐ&8¸"Ð%=Ñ>Ô>Ð>ØŸšÐ%RÐ%R¸f×>OÒ>OÑ>QÔ>QÐ%RÑ%RÔ%RÑSÔSÐSØŸš RÑ(Ô(Ð(ùØ”^ uÒ,Ð,Ø!ŸXšX hÑ/Ô/�FØÐ)ØŸš m°RÐ%8Ñ9Ô9Ð9ØŸšÐ%RÐ%R¸f×>OÒ>OÑ>QÔ>QÐ%RÑ%RÔ%RÑSÔSÐSØŸš RÑ(Ô(Ð(ùØ”^ yÒ0Ð0Ø!ŸXšX hÑ/Ô/�FØ ŸHšH W¨aÑ0Ô0�EØÐ)ØŸšÐ&@À5Ñ&HÈ"Ð%MÑNÔNÐNØŸšÐ%RÐ%R¸f×>OÒ>OÑ>QÔ>QÐ%RÑ%RÔ%RÑSÔSÐSØŸš RÑ(Ô(Ð(ùñ?)ð@ 	�Š�RÑÔÐØ�yŠy˜ÑÔÐr   N)r   r   r   r   rn   r   r   r   r`   r`   ¤   s)   € € € € € Ø#Ð#ð+ ð + ð + ð + ð + r   r`   )r   Ú
__future__r   r3   Únbbaser   r   r   r   r	   r
   r   Úrwbaser   r   Úcompiler/   Ú	Exceptionr   r   r`   Ú_readerÚ_writerr   Úreadr   Úwritern   r   r   r   ú<module>rx      s}  ððð ð" #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ð &˜2œ:Ð&CÑDÔDÐ ð0ð 0ð 0ð 0ð 0�Iñ 0ô 0ð 0ðu9ð u9ð u9ð u9ð u9ˆ~ñ u9ô u9ð u9ðp. ð . ð . ð . ð . ˆ~ñ . ô . ð . ðb ˆ(‰*Œ*€Ø
ˆ(‰*Œ*€àŒ€Ø„|€ØÔ!€ØŒ€Ø	Œ€€€r   