ó
    {ñ:i@  ã                   óH  • S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
JrJr  SSKJr  SSKJr  SSKJrJrJr  S	S
KJrJrJr  S	SKJrJr  S rSSSSSSSS.r " S S\5      r " S S\5      r " S S\5      r " S S5      r \RB                   " S S\5      5       r"g)z,Interactive figures in the IPython notebook.é    )Ú	b64encodeN)ÚComm)ÚdisplayÚ
JavascriptÚHTML)Úis_interactive©ÚGcf)Ú_BackendÚ
CloseEventÚNavigationToolbar2é   )ÚFigureCanvasWebAggCoreÚFigureManagerWebAggÚNavigationToolbar2WebAgg)ÚTimerTornadoÚTimerAsyncioc                  óŒ  • [         R                  " 5        V s/ s HU  n SR                  U R                  R                  R                  5       =(       d    SU R                   3U R                  S9PMW     nn [        5       (       d+  UR                  S[        [         R                  5       35        SR                  U5      $ s  sn f )zŒ
Return a string showing the figure and connection status for the backend.

This is intended as a diagnostic tool, and not for general use.
z{fig} - {socket}zFigure )ÚfigÚsocketzFigures pending show: Ú
)r
   Úget_all_fig_managersÚformatÚcanvasÚfigureÚ	get_labelÚnumÚweb_socketsr   ÚappendÚlenÚfigsÚjoin)ÚmanagerÚresults     Úd/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_nbagg.pyÚconnection_infor&      s®   € ô ×/Ò/Ô1óò
 2ˆGð	 	×!Ñ!Ø—‘×&Ñ&×0Ñ0Ó2÷ ,Ø˜gŸk™k˜]Ð+Ø×&Ñ&ð 	"ó 	(ñ 2ð ð ô ×ÑØ�‰Ð.¬s´3·8±8«}¨oÐ>Ô?Ø�9‰9�VÓÐùòs   ˜ACz
fa fa-homezfa fa-arrow-leftzfa fa-arrow-rightzfa fa-square-ozfa fa-arrowszfa fa-floppy-o)ÚhomeÚbackÚforwardÚzoom_to_rectÚmoveÚdownloadNc                   ó®   • \ rS rSr\R
                  S-    V VVVVVs/ s H  u  pp4U[        ;   d  M  X[        U   U4PM      snnnnnn rSrgs  snnnnnn f )ÚNavigationIPyé5   ))ÚDownloadzDownload plotr,   r,   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú	toolitemsÚ_FONT_AWESOME_CLASSESÚ__static_attributes__)Ú.0ÚtextÚtooltip_textÚ
image_fileÚname_of_methodr7   s   000000r%   r.   r.   5   sf   † ð (×1Ñ1ØMòN÷9ð 9òNñ D�T¨ð Ô"7Ñ7óE�$Ü'¨
Ñ3°^óEñNö9ƒIù÷ 9s
   �A²Ar.   c                   ó”   ^ • \ rS rSr\=rrU 4S jr\S 5       r	S r
S rS r\S 5       r\SU 4S jj5       rS	 rS
 rS rS rSrU =r$ )ÚFigureManagerNbAggé@   c                 ó2   >• SU l         [        TU ]	  X5        g )NF)Ú_shownÚsuperÚ__init__)Úselfr   r   Ú	__class__s      €r%   rD   ÚFigureManagerNbAgg.__init__C   s   ø€ ØˆŒÜ‰Ñ˜Õ%ó    c                 óÀ   ^^^• U" U5      mU " TU5      m[        5       (       a   TR                  5         TR                  5         UUU4S jnTR                  SU5      mT$ )Nc                 óT   >• TR                  T5        [        R                  " T5        g ©N)Úmpl_disconnectr
   Údestroy)Úeventr   Úcidr#   s    €€€r%   rM   Ú6FigureManagerNbAgg.create_with_canvas.<locals>.destroyO   s   ø€ Ø×!Ñ! #Ô&Ü�KŠK˜Õ rH   Úclose_event)r   ÚshowÚ	draw_idleÚmpl_connect)ÚclsÚcanvas_classr   r   rM   r   rO   r#   s        @@@r%   Úcreate_with_canvasÚ%FigureManagerNbAgg.create_with_canvasG   sU   ú€ á˜fÓ%ˆÙ�f˜cÓ"ˆÜ×ÑØ�L‰LŒNØ×ÑÔ÷	!ð × Ñ  °Ó8ˆØˆrH   c                 óP   • [        [        [        R                  5       5      5        g rK   )r   r   r?   Úget_javascript©rE   s    r%   Ú
display_jsÚFigureManagerNbAgg.display_jsV   s   € ô 	”
Ô-×<Ñ<Ó>Ó?Õ@rH   c                 óŽ  • U R                   (       d!  U R                  5         U R                  5         OU R                  R	                  5         SU l         [        U S5      (       a%  U R                  R                  U R                  5        [        5       (       d-  SSK	J
n  UR                  R                  U R                  S 5        g g )NTÚ_cidgcfr   r	   )rB   r\   Ú_create_commr   rS   ÚhasattrrL   r_   r   Úmatplotlib._pylab_helpersr
   r!   Úpopr   )rE   r
   s     r%   rR   ÚFigureManagerNbAgg.show\   s‚   € Ø�{�{Ø�O‰OÔØ×ÑÕà�K‰K×!Ñ!Ô#ØˆŒô
 �4˜×#Ñ#Ø�K‰K×&Ñ& t§|¡|Ô4Ü×ÑÝ5Ø�H‰H�L‰L˜Ÿ™ 4Õ(ð  rH   c                 ó2   • SU l         U R                  5         g)z:
A special method to re-show the figure in the notebook.

FN)rB   rR   r[   s    r%   ÚreshowÚFigureManagerNbAgg.reshowm   s   € ð
 ˆŒØ�	‰	�rH   c                 ó,   • [        U R                  5      $ rK   )Úboolr   r[   s    r%   Ú	connectedÚFigureManagerNbAgg.connectedu   s   € ä�D×$Ñ$Ó%Ð%rH   c                 ó  >• Uc  [         R                  " 5       nOUn[        TU ]  US9  UR	                  [
        R                  " [        5      R                  S-  R                  SS95        Uc  UR                  5       $ g )N)Ústreamzweb_backend/js/nbagg_mpl.jszutf-8)Úencoding)ÚioÚStringIOrC   rZ   ÚwriteÚpathlibÚPathÚ__file__ÚparentÚ	read_textÚgetvalue)rU   rm   ÚoutputrF   s      €r%   rZ   Ú!FigureManagerNbAgg.get_javascripty   sr   ø€ à‰>Ü—[’[“]‰FàˆFÜ‰Ñ fÐÑ-Ø�‰”g—l’l¤8Ó,×3Ñ3Ø5ñ6ç‘i¨�iÐ1ô	3ð ‰>Ø—?‘?Ó$Ð$ð rH   c                 ó>   • [        U 5      nU R                  U5        U$ rK   )Ú
CommSocketÚadd_web_socket©rE   Úcomms     r%   r`   ÚFigureManagerNbAgg._create_comm†   s   € Ü˜$ÓˆØ×Ñ˜DÔ!ØˆrH   c                 óž   • U R                  S5        [        U R                  5       H  nUR                  5         M     U R	                  5         g )NÚclose)Ú_send_eventÚlistr   Úon_closeÚclearup_closedr}   s     r%   rM   ÚFigureManagerNbAgg.destroy‹   s:   € Ø×Ñ˜Ô!ä˜×)Ñ)Ö*ˆDØ�M‰MŽOñ +à×ÑÕrH   c                 óü   • U R                    Vs1 s H  nUR                  5       (       d  M  UiM     snU l         [        U R                   5      S:X  a%  [        SU R                  5      R                  5         ggs  snf )zClear up any closed Comms.r   rQ   N)r   Úis_openr    r   r   Ú_process)rE   r   s     r%   r…   Ú!FigureManagerNbAgg.clearup_closed’   sh   € à15×1AÒ1Aó 1Ò1A vØ%Ÿ~™~×/÷ #Ñ1Añ 1ˆÔô ˆt×ÑÓ  AÓ%Ü�} d§k¡kÓ2×;Ñ;Õ=ð &ùò1s
   �A9¬A9c                 óŠ   • U R                    Vs1 s H!  nUR                  R                  U:w  d  M  UiM#     snU l         g s  snf rK   )r   r~   Úcomm_id)rE   rŒ   r   s      r%   Úremove_commÚFigureManagerNbAgg.remove_commš   s?   € Ø15×1AÒ1Aó ?Ò1A vØ%Ÿ{™{×2Ñ2°gÑ=÷ #Ñ1Añ ?ˆÕùò ?s
   �A ±A )rB   r   rK   )r2   r3   r4   r5   r.   Ú_toolbar2_classÚ
ToolbarClsrD   ÚclassmethodrW   r\   rR   rf   Úpropertyrj   rZ   r`   rM   r…   r�   r8   Ú__classcell__)rF   s   @r%   r?   r?   @   sw   ø† Ø#0Ð0€O�jõ&ð ñó ðòAò)ò"ð ñ&ó ð&ð ö
%ó ð
%òò
ò>÷?ð ?rH   r?   c                   ó   • \ rS rSr\rSrg)ÚFigureCanvasNbAggéŸ   r1   N)r2   r3   r4   r5   r?   Úmanager_classr8   r1   rH   r%   r•   r•   Ÿ   s   † Ø&ƒMrH   r•   c                   ó<   • \ rS rSrSrS rS rS rS rS r	S r
S	rg
)r{   é£   a4  
Manages the Comm connection between IPython and the browser (client).

Comms are 2 way, with the CommSocket being able to publish a message
via the send_json method, and handle a message with on_message. On the
JS side figure.send_message and figure.ws.onmessage do the sending and
receiving respectively.

c                 óÔ  ^ ^• S T l         TT l        [        [        R                  " 5       5      T l        [        [        ST R                  -  5      5         [        SST R                  0S9T l        T R                  R                  T R                  5        T R                  mST l        UU 4S jnT R                  R                  U5        g ! [         a  n[        S5      UeS nAff = f)Nz<div id=%r></div>Ú
matplotlibÚid)ÚdatazTUnable to create an IPython notebook Comm instance. Are you in the IPython notebook?Fc                 ób   >• STl         TR                  U S   S   5        TR                  5         g )NTÚcontentrŒ   )Ú
_ext_closer�   r…   )Úclose_messager#   rE   s    €€r%   Ú	_on_closeÚ&CommSocket.__init__.<locals>._on_close¿   s.   ø€ Ø"ˆDŒOØ×Ñ ¨iÑ 8¸Ñ CÔDØ×"Ñ"Õ$rH   )Úsupports_binaryr#   ÚstrÚuuidÚuuid4r   r   r   r~   ÚAttributeErrorÚRuntimeErrorÚon_msgÚ
on_messager    r„   )rE   r#   Úerrr¢   s   ``  r%   rD   ÚCommSocket.__init__­   sÁ   ù€ Ø#ˆÔØˆŒÜœŸ
š
›Ó%ˆŒ	ô 	”Ð(¨4¯9©9Ñ4Ó5Ô6ð	5Ü˜\°°t·y±yÐ0AÑBˆDŒIð
 	�	‰	×Ñ˜Ÿ™Ô)à—,‘,ˆØˆŒö	%ð
 	�	‰	×Ñ˜9Õ%øô ó 	5Üð  +ó ,à14ð5ûð	5ús   ÁC Ã
C'ÃC"Ã"C'c                 ó^   • U R                   =(       d    U R                  R                  (       + $ rK   )r    r~   Ú_closedr[   s    r%   rˆ   ÚCommSocket.is_openÆ   s   € Ø—O‘O×8 t§y¡y×'8Ñ'8Ô9Ð9rH   c                 ó†   • U R                  5       (       a   U R                  R                  5         g g ! [         a     g f = frK   )rˆ   r~   r�   ÚKeyErrorr[   s    r%   r„   ÚCommSocket.on_closeÉ   s;   € ð �<‰<�>‰>ðØ—	‘	—‘Õ!ð øô ó áðús   —3 ³
A ¿A c                 óf   • U R                   R                  S[        R                  " U5      05        g )Nr�   )r~   ÚsendÚjsonÚdumps)rE   rŸ   s     r%   Ú	send_jsonÚCommSocket.send_jsonÓ   s    € Ø�	‰	�‰˜¤§
¢
¨7Ó 3Ð4Õ5rH   c                 óÚ   • U R                   (       a  U R                  R                  SS0U/S9  g [        U5      R	                  S5      nSU 3nU R                  R                  SU05        g )NÚblobz	image/png)ÚbuffersÚasciizdata:image/png;base64,r�   )r¤   r~   rµ   r   Údecode)rE   r»   r�   Údata_uris       r%   Úsend_binaryÚCommSocket.send_binaryÖ   s]   € Ø××Ø�I‰I�N‰N˜F KÐ0¸4¸&ˆNÒAô ˜T“?×)Ñ)¨'Ó2ˆDØ/°¨vÐ6ˆHØ�I‰I�N‰N˜F HÐ-Õ.rH   c                 ó  • [         R                  " US   S   5      nUS   S:X  a+  U R                  5         U R                  R	                  5         g US   S:X  a  US   U l        g U R                  R                  U5        g )NrŸ   r�   ÚtypeÚclosingr¤   Úvalue)r¶   Úloadsr„   r#   r…   r¤   Úhandle_json)rE   Úmessages     r%   r«   ÚCommSocket.on_messageà   sm   € ô —*’*˜W YÑ/°Ñ7Ó8ˆØ�6‰?˜iÓ'Ø�M‰MŒOØ�L‰L×'Ñ'Õ)Ø�V‰_Ð 1Ó1Ø#*¨7Ñ#3ˆDÕ à�L‰L×$Ñ$ WÕ-rH   )r    r~   r#   r¤   r¦   N)r2   r3   r4   r5   Ú__doc__rD   rˆ   r„   r¸   rÀ   r«   r8   r1   rH   r%   r{   r{   £   s%   † ñò&ò2:òò6ò/õ.rH   r{   c                   ó   • \ rS rSr\r\rSrg)Ú_BackendNbAggéð   r1   N)	r2   r3   r4   r5   r•   ÚFigureCanvasr?   ÚFigureManagerr8   r1   rH   r%   rÌ   rÌ   ð   s   † à$€LØ&ƒMrH   rÌ   )#rÊ   Úbase64r   ro   r¶   rr   r¦   Úipykernel.commr   ÚIPython.displayr   r   r   r›   r   rb   r
   Úmatplotlib.backend_basesr   r   r   Úbackend_webagg_corer   r   r   r   r   r&   r7   r.   r?   r•   r{   ÚexportrÌ   r1   rH   r%   Ú<module>rÖ      s¹   ðÙ 2õ
 Û 	Û Û Û å ß 5Ñ 5å %Ý )ß MÑ M÷Kñ K÷ òð& ØØ"Ø$ØØ Ø
ñÐ ô9Ð,ô 9ô\?Ð,ô \?ô~'Ð.ô '÷J.ñ J.ðZ 
‡�ô'�Hó 'ó ñ'rH   