§
    �Ÿjà  ã                  ó(  — d Z ddlmZ ddlZddl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é   )Únew_code_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 by the PyReader.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú]/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbformat/v2/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 }d}|D �]}|                     d¦  «        st                               |¦  «        rŒ3|                     d¦  «        r2|                      ||¦  «        }|�|                     |¦  «         d}g }Œz|                     d¦  «        r2|                      ||¦  «        }|�|                     |¦  «         d}g }ŒÁ|                     d¦  «        r3|                      ||¦  «        }|�|                     |¦  «         d}g }�Œ	|                     |¦  «         �Œ |r3|dk    r-|                      ||¦  «        }|�|                     |¦  «         t          |¬	¦  «        }	t          |	g¬
¦  «        S )r   Úcodecellz# <nbformat>ú# <codecell>Nú# <htmlcell>Úhtmlcellú# <markdowncell>Úmarkdowncell)Úcells)Ú
worksheets)Ú
splitlinesÚ
startswithÚ_encoding_declaration_reÚmatchÚnew_cellÚappendr   r   )
r   r   r   Úlinesr$   Ú
cell_linesÚstateÚlineÚcellÚwss
             r   r   zPyReader.to_notebook+   s´  € à—’‘”ˆØˆØ "ˆ
ØˆØð 	(ñ 	(ˆDØ�Š˜~Ñ.Ô.ð (Õ2J×2PÒ2PÐQUÑ2VÔ2Vð (ØØ—’ Ñ0Ô0ð (Ø—}’} U¨JÑ7Ô7�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø"�Ø�
�
Ø—’ Ñ0Ô0ð (Ø—}’} U¨JÑ7Ô7�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø"�Ø�
�
Ø—’Ð!3Ñ4Ô4ð (Ø—}’} U¨JÑ7Ô7�ØÐ#Ø—L’L Ñ&Ô&Ð&Ø&�Ø�
‘
à×!Ò! $Ñ'Ô'Ð'Ñ'Øð 	#˜% :Ò-Ð-Ø—=’= ¨
Ñ3Ô3ˆDØÐØ—’˜TÑ"Ô"Ð"Ý Ð'Ñ'Ô'ˆÝ¨ tÐ,Ñ,Ô,Ð,r   c                óN  — |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	S )
zCreate a new cell.r   ú
)Úinputr!   Úhtml)Úsourcer#   ÚmarkdownN)ÚjoinÚstripr   Ú_remove_commentsr   )r   r.   r,   Úinput_Útexts        r   r*   zPyReader.new_cellO   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¸Ð=Ñ=Ô=Ð=ð %Ð$ð>ð >r   c                óø   — g }|D ]J}|                      d¦  «        r|                     |dd …         ¦  «         Œ5|                     |¦  «         ŒKd                     |¦  «        }|                     d¦  «        }|S )Nú#é   r3   )r'   r+   r8   r9   )r   r,   Ú	new_linesr/   r<   s        r   r:   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   Nr3   c                ó"   — g | ]}|j         d z
  ‘ŒS )r   )Úlineno)Ú.0Úxs     r   ú
<listcomp>z4PyReader.split_lines_into_blocks.<locals>.<listcomp>s   s   € Ð2Ð2Ð2 1�!”(˜Q‘,Ð2Ð2Ð2r   éÿÿÿÿ)ÚlenÚStopIterationÚastr8   ÚparseÚbodyÚranger9   )r   r,   rJ   r6   ÚcodeÚstartsÚis          r   Úsplit_lines_into_blocksz PyReader.split_lines_into_blocksj   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   r*   r:   rQ   r   r   r   r   r   $   sf   € € € € € Ø#Ð#ð-ð -ð -ð"-ð "-ð "-ðH>ð >ð >ð 	ð 	ð 	ð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dg¦  «         |j        D �]„}|j        D �]x}|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    rt|                     d	¦  «        }|�]|                      ddg¦  «         |                      d„ |                     ¦   «         D ¦   «         ¦  «         |                     d¦  «         �Œz�Œ†|                     d¦  «         t          d                     |¦  «        ¦  «        S )z&Convert a notebook object to a string.z# -*- coding: utf-8 -*-z# <nbformat>2</nbformat>Ú rN   r4   Nr   r5   r6   r    c                ó   — g | ]}d |z   ‘ŒS ©z# r   ©rD   r/   s     r   rF   z#PyWriter.writes.<locals>.<listcomp>Œ   ó   € Ð%RÐ%RÐ%R°d d¨T¡kÐ%RÐ%RÐ%Rr   r7   r"   c                ó   — g | ]}d |z   ‘ŒS rW   r   rX   s     r   rF   z#PyWriter.writes.<locals>.<listcomp>’   rY   r   r3   )	Úextendr%   r$   Ú	cell_typeÚgetr&   r+   Ústrr8   )r   Únbr   r,   r1   r0   r;   s          r   ÚwriteszPyWriter.writes|   sÚ  € à*Ð+ˆØ�ŠÐ0°"Ð5Ñ6Ô6Ð6Ø”-ð 	)ñ 	)ˆ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Ñ(Ô(Ð(ùñ%)ð& 	�Š�RÑÔÐÝ�4—9’9˜UÑ#Ô#Ñ$Ô$Ð$r   N)r   r   r   r   r`   r   r   r   rS   rS   y   s)   € € € € € Ø#Ð#ð%ð %ð %ð %ð %r   rS   )r   Ú
__future__r   ÚreÚnbbaser   r   r   r   Úrwbaser	   r
   Úcompiler(   Ú	Exceptionr   r   rS   Ú_readerÚ_writerr   Úreadr   Úwriter`   r   r   r   ú<module>rk      sD  ððð ð" #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	à MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ð &˜2œ:Ð&CÑDÔDÐ ð+ð +ð +ð +ð +�Iñ +ô +ð +ðR9ð R9ð R9ð R9ð R9ˆ~ñ R9ô R9ð R9ðj%ð %ð %ð %ð %ˆ~ñ %ô %ð %ð> ˆ(‰*Œ*€Ø
ˆ(‰*Œ*€àŒ€Ø„|€ØÔ!€ØŒ€Ø	Œ€€€r   