§
    ŽŸj¶  ã                  ól   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ  G d	„ d
¦  «        ZdS )zAn output widget mimic.é    )Úannotations)ÚAny)ÚKernelClient)ÚNotebookNode)Úoutput_from_msgé   )Ú
json_cleanc                  ób   — e Zd ZdZd#d„Zd$d„Zd%d„Z	 	 	 d&d'd„Z	 	 	 d&d(d„Zd)d „Z	d*d!„Z
d+d"„ZdS ),ÚOutputWidgetz+This class mimics a front end output widgetÚcomm_idÚstrÚstateúdict[str, Any]Úkernel_clientr   Úexecutorr   ÚreturnÚNonec                ó´   — || _         || _        || _        || _        d| j         z                       d¦  «        | _        | j        d         | _        d| _        dS )zInitialize the widget.zcomm-%sÚasciiÚoutputsFN)r   r   r   r   ÚencodeÚtopicr   Úclear_before_next_output)Úselfr   r   r   r   s        úc/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbclient/output_widget.pyÚ__init__zOutputWidget.__init__   sY   € ð $ˆŒØ%*ˆŒ
Ø+8ˆÔØ ˆŒØ&¨¬Ñ5×=Ò=¸gÑFÔFˆŒ
Ø+/¬:°iÔ+@ˆŒØ.3ˆÔ%Ð%Ð%ó    Úoutsúlist[NotebookNode]ÚmsgÚ
cell_indexÚintc                ó  — |d         | _         |d         }|                     d¦  «        r	d| _        dS g | _        |                      ¦   «          t          | j        d¦  «        r!| j        | j        j        | j                 d<   dS dS )zClear output.Úparent_headerÚcontentÚwaitTÚwidget_stater   N)	r$   Úgetr   r   Ú
sync_stateÚhasattrr   r'   r   )r   r   r    r!   r%   s        r   Úclear_outputzOutputWidget.clear_output   s‘   € à  Ô1ˆÔØ�i”.ˆØ�;Š;�vÑÔð 	SØ,0ˆDÔ)Ð)Ð)àˆDŒLà�OŠOÑÔÐÝ�t”} nÑ5Ô5ð SàFJÄl�”Ô*¨4¬<Ô8¸ÑCÐCÐCðSð Sr   c                óN   — d| j         i}d|g dœ}|                      |¦  «         dS )zSync state.r   Úupdate)Úmethodr   Úbuffer_pathsN)r   Úsend)r   r   r    s      r   r)   zOutputWidget.sync_state*   s0   € à˜DœLÐ)ˆØ!¨EÀ2ÐFÐFˆØ�	Š	�#‰Œˆˆˆr   NÚmsg_typeÚdataúdict[str, Any] | NoneÚmetadataÚbuffersúlist[Any] | NoneÚkeysc                óî   — |€i n|}|€i n|}t          t          d|| j        dœ|¤Ž¦  «        }| j        j                             ||| j        |¬¦  «        }| j        j                             |¦  «         dS )z*Helper for sending a comm message on IOPubN)r2   r   )r%   Úparentr4   © )	r	   Údictr   r   Úsessionr    r$   Úshell_channelr0   )r   r1   r2   r4   r5   r7   r%   r    s           r   Ú_publish_msgzOutputWidget._publish_msg0   s‘   € ð �\ˆrˆr tˆØ!Ð)�2�2¨xˆÝ�TÐJ t°T´\ÐJÐJÀTÐJÐJÑKÔKˆØÔ Ô(×,Ò,Ø˜g¨dÔ.@È8ð -ñ 
ô 
ˆð 	ÔÔ(×-Ò-¨cÑ2Ô2Ð2Ð2Ð2r   c                ó8   — |                       d|||¬¦  «         dS )zSend a comm message.Úcomm_msg)r2   r4   r5   N)r>   )r   r2   r4   r5   s       r   r0   zOutputWidget.sendA   s'   € ð 	×Ò˜*¨4¸(ÈGÐÑTÔTÐTÐTÐTr   Ú
display_idú
str | Nonec                ó  — | j         rg | _        d| _         |d         | _        t          |¦  «        }| j        ri| j        d         }|d         dk    r5|d         dk    r)|d         |d         k    r|dxx         |d         z  cc<   n5| j                             |¦  «         n| j                             |¦  «         |                      ¦   «          t          | j        d¦  «        r!| j        | j        j        | j	                 d	<   d
S d
S )zHandle output.Fr$   éÿÿÿÿÚoutput_typeÚstreamÚnameÚtextr'   r   N)
r   r   r$   r   Úappendr)   r*   r   r'   r   )r   r   r    rA   r!   ÚoutputÚlast_outputs          r   rJ   zOutputWidget.outputJ   s#  € ð Ô(ð 	2ØˆDŒLØ,1ˆDÔ)Ø  Ô1ˆÔÝ  Ñ%Ô%ˆàŒ<ð 	(àœ, rÔ*ˆKà˜MÔ*¨hÒ6Ð6Ø˜=Ô)¨XÒ5Ð5Ø Ô'¨6°&¬>Ò9Ð9à˜FÐ#Ð#Ô# v¨f¤~Ñ5Ð#Ð#Ñ#Ð#à”×#Ò# FÑ+Ô+Ð+Ð+àŒL×Ò Ñ'Ô'Ð'Ø�ŠÑÔÐÝ�4”= .Ñ1Ô1ð 	OàBFÄ,ˆDŒMÔ& t¤|Ô4°YÑ?Ð?Ð?ð	Oð 	Or   c                óÖ   — d|v rd|                      d¦  «        }|r$| j                             || ¦  «         || _        dS | j                             | j        | ¦  «         || _        dS dS )zSet the state.Úmsg_idN)r(   r   Úregister_output_hookrM   Úremove_output_hook)r   r   rM   s      r   Ú	set_statezOutputWidget.set_statef   sv   € à�uÐÐØ—Y’Y˜xÑ(Ô(ˆFØð %Ø”×2Ò2°6¸4Ñ@Ô@Ð@Ø$�”��à”×0Ò0°´¸dÑCÔCÐCØ$�”��ð Ðr   c                ó¬   — |d         }|d         }|| j         k    rt          d¦  «        ‚|d         }d|v r|                      |d         ¦  «         dS dS )zHandle a message.r%   r   zMismatched comm idr2   r   N)r   ÚAssertionErrorrP   )r   r    r%   r   r2   s        r   Ú
handle_msgzOutputWidget.handle_msgq   sf   € à�i”.ˆØ˜)Ô$ˆØ�d”lÒ"Ð"Ý Ð!5Ñ6Ô6Ð6Ø�vŒˆØ�dˆ?ˆ?Ø�NŠN˜4 œ=Ñ)Ô)Ð)Ð)Ð)ð ˆ?r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r    r   r!   r"   r   r   )r   r   )NNN)r1   r   r2   r3   r4   r3   r5   r6   r7   r   r   r   )r2   r3   r4   r3   r5   r6   r   r   )
r   r   r    r   rA   rB   r!   r"   r   r   )r   r   r   r   )r    r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r+   r)   r>   r0   rJ   rP   rS   r:   r   r   r   r      sç   € € € € € Ø5Ð5ð
4ð 
4ð 
4ð 
4ðSð Sð Sð Sðð ð ð ð '+Ø*.Ø$(ð3ð 3ð 3ð 3ð 3ð& '+Ø*.Ø$(ð	Uð Uð Uð Uð UðOð Oð Oð Oð8	%ð 	%ð 	%ð 	%ð*ð *ð *ð *ð *ð *r   r   N)rW   Ú
__future__r   Útypingr   Újupyter_client.clientr   Únbformatr   Únbformat.v4r   Újsonutilr	   r   r:   r   r   ú<module>r^      s³   ðØ Ð Ø "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à .Ð .Ð .Ð .Ð .Ð .Ø !Ð !Ð !Ð !Ð !Ð !Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à  Ð  Ð  Ð  Ð  Ð  ðl*ð l*ð l*ð l*ð l*ñ l*ô l*ð l*ð l*ð l*r   