
    Eh                    d    S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr   " S	 S
5      rg)zAn output widget mimic.    )annotations)Any)KernelClient)NotebookNode)output_from_msg   )
json_cleanc                      \ rS rSrSr          SS jrSS jrSS jr   S           SS jjr   S       SS jjr	          SS	 jr
SS
 jrSS jrSrg)OutputWidget   z+This class mimics a front end output widgetc                    Xl         X l        X0l        X@l        SU R                   -  R	                  S5      U l        U R                  S   U l        SU l        g)zInitialize the widget.zcomm-%sasciioutputsFN)comm_idstatekernel_clientexecutorencodetopicr   clear_before_next_output)selfr   r   r   r   s        iC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\nbclient/output_widget.py__init__OutputWidget.__init__   sL     $%*
+8 &5==gF
+/::i+@.3%    c                $   US   U l         US   nUR                  S5      (       a  SU l        g/ U l        U R	                  5         [        U R                  S5      (       a1  U R                  U R                  R                  U R                     S'   gg)zClear output.parent_headercontentwaitTwidget_stater   N)	r   getr   r   
sync_statehasattrr   r    r   )r   outsmsg
cell_indexr   s        r   clear_outputOutputWidget.clear_output   sw     1i.;;v,0D)DLOOt}}n55FJll**4<<8C 6r   c                N    SU R                   0nSU/ S.nU R                  U5        g)zSync state.r   update)methodr   buffer_pathsN)r   send)r   r   r%   s      r   r"   OutputWidget.sync_state*   s'    DLL)!E2F		#r   Nc                   Uc  0 OUnUc  0 OUn[        [        SX R                  S.UD65      nU R                  R                  R                  XU R                  US9nU R                  R                  R                  U5        g)z*Helper for sending a comm message on IOPubN)datar   )r   parentmetadata )	r	   dictr   r   sessionr%   r   shell_channelr-   )r   msg_typer0   r2   bufferskeysr   r%   s           r   _publish_msgOutputWidget._publish_msg0   s     \rt!)2xTJt\\JTJK  ((,,d.@.@8 - 
 	((--c2r   c                &    U R                  SXUS9  g)zSend a comm message.comm_msg)r0   r2   r8   N)r:   )r   r0   r2   r8   s       r   r-   OutputWidget.sendA   s     	*4GTr   c                0   U R                   (       a  / U l        SU l         US   U l        [        U5      nU R                  (       aZ  U R                  S   nUS   S:X  a&  US   S:X  a  US   US   :X  a  US==   US   -  ss'   O7U R                  R	                  U5        OU R                  R	                  U5        U R                  5         [        U R                  S5      (       a1  U R                  U R                  R                  U R                     S	'   g
g
)zHandle output.Fr   output_typestreamnametextr    r   N)
r   r   r   r   appendr"   r#   r   r    r   )r   r$   r%   
display_idr&   outputlast_outputs          r   rG   OutputWidget.outputJ   s     ((DL,1D) 1 %<<,,r*KM*h6=)X5'6&>9F#vf~5###F+LL'4==.11BF,,DMM&&t||4Y? 2r   c                    SU;   ag  UR                  S5      nU(       a"  U R                  R                  X 5        X l        gU R                  R	                  U R                  U 5        X l        gg)zSet the state.msg_idN)r!   r   register_output_hookrK   remove_output_hook)r   r   rK   s      r   	set_stateOutputWidget.set_statef   sT    uYYx(F226@$00dC$ r   c                    US   nUS   nX0R                   :w  a  [        S5      eUS   nSU;   a  U R                  US   5        gg)zHandle a message.r   r   zMismatched comm idr0   r   N)r   AssertionErrorrN   )r   r%   r   r   r0   s        r   
handle_msgOutputWidget.handle_msgq   sP    i.)$ll" !566vd?NN4=) r   )	r   r   r   r   rK   r   r   r   r   )
r   strr   dict[str, Any]r   r   r   r   returnNone)r$   list[NotebookNode]r%   rU   r&   intrV   rW   )rV   rW   )NNN)r7   rT   r0   dict[str, Any] | Noner2   rZ   r8   list[Any] | Noner9   r   rV   rW   )r0   rZ   r2   rZ   r8   r[   rV   rW   )
r$   rX   r%   rU   rF   rT   r&   rY   rV   rW   )r   rU   rV   rW   )r%   rU   rV   rW   )__name__
__module____qualname____firstlineno____doc__r   r'   r"   r:   r-   rG   rN   rR   __static_attributes__r3   r   r   r   r      s    5
4
4#1
4BN
4Z]
4	
4S '+*.$(33 $3 (	3
 "3 3 
3& '+*.$(	U#U (U "	U
 
UO&O-;OILOZ]O	O8	%*r   r   N)r`   
__future__r   typingr   jupyter_client.clientr   nbformatr   nbformat.v4r   jsonutilr	   r   r3   r   r   <module>rh      s&     "  . ! '  l* l*r   