ó
    {ñ:i+  ã                   óÖ  • S r SSKJr  SSKrSSKJr  SSKrSSK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rSSKrSSKrSSKrSSKJr  SSKJr  S	S
KJr  S	SKJrJr  \R@                  " S S9r! " S S\RD                  5      r" " S S\RF                  5      r$ " S S\RJ                  RL                  5      r'S r(\RR                   " S S\5      5       r*g! \ a  r\" S5      \eSrCff = f)z7Displays Agg images in the browser, with interactivity.é    )ÚcontextmanagerN)ÚBytesIO)ÚPathz$The WebAgg backend requires Tornado.)Ú_Backend)ÚGcfé   )Úbackend_webagg_core)ÚTimerAsyncioÚTimerTornadoc                  ón   • [         R                  R                  R                  5       R	                  5       $ ©N)ÚtornadoÚioloopÚIOLoopÚinstanceÚstart© ó    Úe/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_webagg.pyÚ<lambda>r   '   s    € ”7—>‘>×(Ñ(×1Ñ1Ó3×9Ñ9Ô;r   )Útargetc                   óD   • \ rS rSr\R
                  r\SS.S j5       rSr	g)ÚFigureManagerWebAggé*   N)Úblockc                óh  • [         R                  5         SR                  [         R                  [         R                  [         R
                  S9n[        R                  S   (       a)  SS KnUR                  U5      (       d  [        SU 35        O[        SU 35        [         R                  5         g )Nzhttp://{address}:{port}{prefix})ÚaddressÚportÚprefixzwebagg.open_in_browserr   zTo view figure, visit )ÚWebAggApplicationÚ
initializeÚformatr   r   Ú
url_prefixÚmplÚrcParamsÚ
webbrowserÚopenÚprintr   )Úclsr   Úurlr&   s       r   Úpyplot_showÚFigureManagerWebAgg.pyplot_show-   sŒ   € ä×$Ñ$Ô&à/×6Ñ6Ü%×-Ñ-Ü"×'Ñ'Ü$×/Ñ/ð 7ð 1ˆô
 �<‰<Ð0×1ÛØ—?‘? 3×'Ñ'ÜÐ.¨s¨eÐ4Ô5øäÐ*¨3¨%Ð0Ô1ä×ÑÕ!r   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚcoreÚNavigationToolbar2WebAggÚ_toolbar2_classÚclassmethodr+   Ú__static_attributes__r   r   r   r   r   *   s"   † Ø×3Ñ3€OàØ"&ô "ó ó"r   r   c                   ó   • \ rS rSr\rSrg)ÚFigureCanvasWebAggé@   r   N)r-   r.   r/   r0   r   Úmanager_classr5   r   r   r   r7   r7   @   s   † Ø'ƒMr   r7   c                   óÌ  ^ • \ rS rSrSrSr " S S\R                  R                  5      r	 " S S\R                  R                  5      r
 " S S\R                  R                  5      r " S	 S
\R                  R                  5      r " S S\R                  R                  5      r " S S\R                  R                  5      rSU 4S jjr\SS j5       r\S 5       rSrU =r$ )r    éD   Fc                   ó   • \ rS rSrS rSrg)ÚWebAggApplication.FavIconéH   c                 ó    • U R                  SS5        U R                  [        [        R                  " 5       S5      R                  5       5        g )NúContent-Typez	image/pngzimages/matplotlib.png)Ú
set_headerÚwriter   r$   Úget_data_pathÚ
read_bytes©Úselfs    r   ÚgetÚWebAggApplication.FavIcon.getI   s9   € Ø�O‰O˜N¨KÔ8Ø�J‰J”tœC×-Ò-Ó/Ø3ó5ß5?±Z³\õCr   r   N©r-   r.   r/   r0   rG   r5   r   r   r   ÚFavIconr=   H   s   † õ	Cr   rJ   c                   ó6   ^ • \ rS rSrSS.U 4S jjrS rSrU =r$ )Ú"WebAggApplication.SingleFigurePageéN   Ú ©r#   c                ó4   >• X0l         [        TU ]  " X40 UD6  g r   ©r#   ÚsuperÚ__init__©rF   ÚapplicationÚrequestr#   ÚkwargsÚ	__class__s        €r   rS   Ú+WebAggApplication.SingleFigurePage.__init__O   ó   ø€ Ø(ŒOÜ‰GÒ˜[Ñ<°VÓ<r   c           	      ó  • [        U5      n[        R                  " U5      nSU R                  R                   U R
                   S3nU R                  SU R
                  UU[        R                  R                  UR                  S9  g )Núws://Ú/zsingle_figure.html)r   Úws_uriÚfig_idÚ	toolitemsÚcanvas)Úintr   Úget_fig_managerrV   Úhostr#   Úrenderr1   r2   r`   ra   )rF   ÚfignumÚmanagerr^   s       r   rG   Ú&WebAggApplication.SingleFigurePage.getS   st   € Ü˜“[ˆFÜ×)Ò)¨&Ó1ˆGà˜TŸ\™\×.Ñ.Ð/°·±Ð/@ÀÐBˆFØ�K‰KØ$Ø—‘ØØÜ×7Ñ7×AÑAØ—~‘~ð ò 'r   ©r-   r.   r/   r0   rS   rG   r5   Ú__classcell__©rX   s   @r   ÚSingleFigurePagerL   N   s   ø† Ø?A÷ 	=ð 	=÷	'ð 	'r   rl   c                   ó6   ^ • \ rS rSrSS.U 4S jjrS rSrU =r$ )Ú WebAggApplication.AllFiguresPageé`   rN   rO   c                ó4   >• X0l         [        TU ]  " X40 UD6  g r   rQ   rT   s        €r   rS   Ú)WebAggApplication.AllFiguresPage.__init__a   rZ   r   c           	      ó  • SU R                   R                   U R                   S3nU R                  SU R                  U[	        [
        R                  R                  5       5      [        R                  R                  S9  g )Nr\   r]   zall_figures.html)r   r^   Úfiguresr`   )rV   rd   r#   re   Úsortedr   ÚfigsÚitemsr1   r2   r`   )rF   r^   s     r   rG   Ú$WebAggApplication.AllFiguresPage.gete   se   € Ø˜TŸ\™\×.Ñ.Ð/°·±Ð/@ÀÐBˆFØ�K‰KØ"Ø—‘ØÜœsŸx™xŸ~™~Ó/Ó0Ü×7Ñ7×AÑAð ò Cr   ri   rk   s   @r   ÚAllFiguresPagern   `   s   ø† Ø?A÷ 	=ð 	=÷	Cð 	Cr   rx   c                   ó   • \ rS rSrS rSrg)ÚWebAggApplication.MplJsén   c                 ó†   • U R                  SS5        [        R                  R                  5       nU R	                  U5        g )Nr@   zapplication/javascript)rA   r1   r   Úget_javascriptrB   )rF   Ú
js_contents     r   rG   ÚWebAggApplication.MplJs.geto   s1   € Ø�O‰O˜NÐ,DÔEä×1Ñ1×@Ñ@ÓBˆJà�J‰J�zÕ"r   r   NrI   r   r   r   ÚMplJsrz   n   s   † õ	#r   r€   c                   ó   • \ rS rSrS rSrg)ÚWebAggApplication.Downloadév   c                 ó>  • [        U5      n[        R                  " U5      nU R                  S[        R
                  R                  US5      5        [        5       nUR                  R                  R                  XBS9  U R                  UR                  5       5        g )Nr@   Úbinary)r"   )rb   r   rc   rA   Ú	mimetypesÚ	types_maprG   r   ra   ÚfigureÚsavefigrB   Úgetvalue)rF   rf   Úfmtrg   Úbuffs        r   rG   ÚWebAggApplication.Download.getw   st   € Ü˜“[ˆFÜ×)Ò)¨&Ó1ˆGØ�O‰OØ¤	× 3Ñ 3× 7Ñ 7¸¸XÓ FôHä“9ˆDØ�N‰N×!Ñ!×)Ñ)¨$Ð)Ñ;Ø�J‰J�t—}‘}“Õ'r   r   NrI   r   r   r   ÚDownloadr‚   v   s   † õ	(r   rŽ   c                   ó6   • \ rS rSrSrS rS rS rS rS r	Sr
g	)
ÚWebAggApplication.WebSocketé€   Tc                 óê   • [        U5      U l        [        R                  " U R                  5      U l        U R                  R                  U 5        [        U S5      (       a  U R                  S5        g g )NÚset_nodelayT)rb   rf   r   rc   rg   Úadd_web_socketÚhasattrr“   )rF   rf   s     r   r'   Ú WebAggApplication.WebSocket.openƒ   sU   € Ü˜f›+ˆDŒKÜ×.Ò.¨t¯{©{Ó;ˆDŒLØ�L‰L×'Ñ'¨Ô-Ü�t˜]×+Ñ+Ø× Ñ  Õ&ð ,r   c                 ó:   • U R                   R                  U 5        g r   )rg   Úremove_web_socketrE   s    r   Úon_closeÚ$WebAggApplication.WebSocket.on_closeŠ   s   € Ø�L‰L×*Ñ*¨4Õ0r   c                 óÂ   • [         R                  " U5      nUS   S:X  a  US   U l        g [        R                  " U R
                  5      nUb  UR                  U5        g g )NÚtypeÚsupports_binaryÚvalue)ÚjsonÚloadsr�   r   rc   rf   Úhandle_json)rF   Úmessagerg   s      r   Ú
on_messageÚ&WebAggApplication.WebSocket.on_message�   s[   € Ü—j’j Ó)ˆGð �v‰Ð"3Ó3Ø'.¨wÑ'7�Õ$ä×-Ò-¨d¯k©kÓ:�ð Ñ&Ø×'Ñ'¨Õ0ð 'r   c                 óN   • U R                  [        R                  " U5      5        g r   )Úwrite_messagerŸ   Údumps)rF   Úcontents     r   Ú	send_jsonÚ%WebAggApplication.WebSocket.send_jsonœ   s   € Ø×ÑœtŸzšz¨'Ó2Õ3r   c                 óÊ   • U R                   (       a  U R                  USS9  g SR                  UR                  S5      R	                  SS5      5      nU R                  U5        g )NT)r…   zdata:image/png;base64,{}Úbase64Ú
rN   )r�   r¦   r"   ÚencodeÚreplace)rF   ÚblobÚdata_uris      r   Úsend_binaryÚ'WebAggApplication.WebSocket.send_binaryŸ   sU   € Ø×#×#Ø×"Ñ" 4°Ð"Ò5à5×<Ñ<Ø—K‘K Ó)×1Ñ1°$¸Ó;ó=�à×"Ñ" 8Õ,r   )rf   rg   r�   N)r-   r.   r/   r0   r�   r'   r™   r£   r©   r²   r5   r   r   r   Ú	WebSocketr�   €   s    † Øˆò	'ò	1ò	1ò	4õ	-r   r´   c                 ó\  >• U(       a  US   S:X  a	  US   S:w  d   S5       e[         TU ]  US-   [        R                  R                  S[
        R                  R                  5       04US-   [        R                  R                  S[        [        R                  " 5       S5      04US	-   U R                  4US
-   U R                  SU04US-   U R                  SU04US-   U R                  4US-   U R                  4US-   U R                   4/[
        R                  R                  5       S9  g )Nr   r]   éÿÿÿÿz6url_prefix must start with a "/" and not end with one.z/_static/(.*)Úpathz/_images/(.*)Úimagesz/favicon.icoz	/([0-9]+)r#   z/?z
/js/mpl.jsz/([0-9]+)/wsz/([0-9]+)/download.([a-z0-9.]+))Útemplate_path)rR   rS   r   ÚwebÚStaticFileHandlerr1   r   Úget_static_file_pathr   r$   rC   rJ   rl   rx   r€   r´   rŽ   )rF   r#   rX   s     €r   rS   ÚWebAggApplication.__init__§   sX  ø€ ÞØ˜a‘= CÓ'¨J°r©N¸cÓ,Að IØHóIÐAô 	‰Ñð Ð.Ñ.Ü—‘×.Ñ.Øœ$×2Ñ2×GÑGÓIÐJðLð
 Ð.Ñ.Ü—‘×.Ñ.Øœ$œs×0Ò0Ó2°HÓ=Ð>ð@ð
 ˜oÑ-¨t¯|©|Ð<ð ˜lÑ*¨D×,AÑ,AØ 
Ð+ð-ð ˜eÑ# T×%8Ñ%8Ø 
Ð+ð-ð ˜mÑ+¨T¯Z©ZÐ8ð ˜oÑ-¨t¯~©~Ð>ð Ð@Ñ@Ø—‘ð ð;ô@ ×2Ñ2×GÑGÓIðC 	ò !	Kr   c                 óæ  • U R                   (       a  g U " US9nXl        S nUc  [        R                  S   U l        OX0l        [        R                  S   U l        U" U R
                  [        R                  S   5       H%  n UR                  X R                  5        X l          O   [        S5      eSU l         g ! [         a*  nUR                  [        R                  :w  a  e  S nAMk  S nAff = f)NrO   c              3   ó¾   #   • [        [        SU5      5       H	  nX-   v •  M     [        US-
  5       H%  nU [        R                  " SU-  SU-  5      -   v •  M'     g7f)z²
Generate a list of n random ports near the given port.

The first 5 ports will be sequential, and the remaining n-5 will be
randomly selected in the range [port-2*n, port+2*n].
é   éþÿÿÿé   N)ÚrangeÚminÚrandomÚrandint)r   ÚnÚis      r   Úrandom_portsÚ2WebAggApplication.initialize.<locals>.random_portsÛ   sS   é € ô œ3˜q !›9Ö%�Ø‘h”ñ &ä˜1˜q™5–\�ØœVŸ^š^¨B°©F°A¸±EÓ:Ñ:Ô:ò "ùs   ‚AAzwebagg.addresszwebagg.portzwebagg.port_retrieszSThe webagg server could not be started because an available port could not be foundT)Úinitializedr#   r$   r%   r   r   ÚlistenÚOSErrorÚerrnoÚ
EADDRINUSEÚ
SystemExit)r)   r#   r   r   ÚapprÉ   Úes          r   r!   ÚWebAggApplication.initializeÏ   sÛ   € à�?�?Øñ ˜ZÑ(ˆà#Œò
	;ð ‰?ÜŸ,™,Ð'7Ñ8ˆC�Kà!ŒKÜ—<‘< Ñ.ˆŒÙ  §¡Ü!$§¡Ð.CÑ!DöFˆDðØ—
‘
˜4§¡Ô-ð
  ”ÙñFô ð*ó+ð +ð ˆ�øô ó Ø—7‘7œe×.Ñ.Ó.Øõ /ûðús   ÂB<Â<
C0ÃC+Ã+C0c                 óÈ  ^ ^^• SS K n UR                  5         ST l        T R                  (       a  g  [        R
                  R                  R                  5       mU U4S jm[        UU4S j5       nST l        [        S5        [        R                  R                  5         U" 5          TR                  5         S S S 5        g ! [         a     N¯f = f! , (       d  f       g = f)Nr   Tc                  ó†   >• TR                  5         [        S5        [        R                  R	                  5         ST l        g )NzServer is stoppedF)Ústopr(   ÚsysÚstdoutÚflushÚstarted)r)   r   s   €€r   ÚshutdownÚ)WebAggApplication.start.<locals>.shutdown  s,   ø€ Ø�K‰KŒMÜÐ%Ô&Ü�J‰J×ÑÔØˆC�Kr   c               3   ó
  >#   • [         R                   " [         R                  UU4S j5      n  S v •  [         R                   " [         R                  U 5        g ! [         R                   " [         R                  U 5        f = f7f)Nc                 ó&   >• TR                  T5      $ r   )Úadd_callback_from_signal)ÚsigÚframer   rÛ   s     €€r   r   Ú?WebAggApplication.start.<locals>.catch_sigint.<locals>.<lambda>  s   ø€  6×#BÑ#BÀ8Ô#Lr   )ÚsignalÚSIGINT)Úold_handlerr   rÛ   s    €€r   Úcatch_sigintÚ-WebAggApplication.start.<locals>.catch_sigint  sK   øé € ä Ÿ-š-Ü—‘ÝLóNˆKð:Ûä—’œfŸm™m¨[Õ9ø”—’œfŸm™m¨[Õ9üs   ƒ+B¯A ³&BÁ'B Â Bz"Press Ctrl+C to stop WebAgg server)ÚasyncioÚget_running_looprÚ   ÚRuntimeErrorr   r   r   r   r   r(   r×   rØ   rÙ   r   )r)   rè   ræ   r   rÛ   s   `  @@r   r   ÚWebAggApplication.startý   s·   ú€ ãð	Ø×$Ñ$Ô&ð ˆCŒKà�;�;Øð	ô —‘×&Ñ&×/Ñ/Ó1ˆö	 ô 
õ	:ó 
ð	:ð ˆŒäÐ2Ô3Ü�
‰
×ÑÔÙ�^Ø�L‰LŒN÷ ˆ^øôM ó 	Ùð	ú÷L �^ús   ‰C Â)CÃ
CÃCÃ
C!r   )rN   )rN   NN)r-   r.   r/   r0   rË   rÚ   r   rº   ÚRequestHandlerrJ   rl   rx   r€   rŽ   Ú	websocketÚWebSocketHandlerr´   rS   r4   r!   r   r5   rj   rk   s   @r   r    r    D   sÈ   ø† Ø€KØ€GôC�'—+‘+×,Ñ,ô Cô'˜7Ÿ;™;×5Ñ5ô 'ô$C˜Ÿ™×3Ñ3ô Cô#�—‘×*Ñ*ô #ô(�7—;‘;×-Ñ-ô (ô%-�G×%Ñ%×6Ñ6ô %-÷N&KðP ó+ó ð+ðZ ñ+ó ö+r   r    c                 óP  • SS K n[        R                  5         SS Kn UR	                  5         U R                  n[        [        R                  R                  5       S5      R                  5       nUR                  R!                  U5      nUR#                  [        R$                  U[        R&                  R(                  U R*                  [        R,                  S9R/                  S5      $ ! [
         a0    [        R                  5       (       d  [        R                  5          Nöf = f)Nr   zipython_inline_figure.html)r   r_   r`   ra   r   zutf-8)Útornado.templater    r!   rè   ré   rê   Úwebagg_server_threadÚis_aliver   Únumberr   r1   r   r¼   Ú	read_textÚtemplateÚTemplateÚgenerater#   r2   r`   ra   r   Údecode)rˆ   r   rè   rf   ÚtplÚts         r   Úipython_inline_displayrû   ,  sç   € Ûä× Ñ Ô"Ûð)Ø× Ñ Ô"ð
 �]‰]€FÜ
Œt×'Ñ'×<Ñ<Ó>Ø+ó-ß-6©Y«[ð à×Ñ×!Ñ! #Ó&€AØ�:‰:Ü ×+Ñ+ØÜ×/Ñ/×9Ñ9Ø�}‰}Ü×#Ñ#ð ð %÷
 &,¡V¨G£_ð5øô ó )Ü#×,Ñ,×.Ñ.Ü ×&Ñ&Ô(ùð)ús   žC+ Ã+7D%Ä$D%c                   ó   • \ rS rSr\r\rSrg)Ú_BackendWebAggiC  r   N)	r-   r.   r/   r0   r7   ÚFigureCanvasr   ÚFigureManagerr5   r   r   r   rý   rý   C  s   † à%€LØ'ƒMr   rý   )+Ú__doc__Ú
contextlibr   rÎ   Úior   rŸ   r†   Úpathlibr   rÅ   r×   rã   Ú	threadingÚtornado.webr   Útornado.ioloopÚtornado.websocketÚImportErrorÚerrrê   Ú
matplotlibr$   Úmatplotlib.backend_basesr   Úmatplotlib._pylab_helpersr   rN   r	   r1   r
   r   ÚThreadrñ   r   ÚFigureCanvasWebAggCorer7   rº   ÚApplicationr    rû   Úexportrý   r   r   r   Ú<module>r     sä   ðÙ =õ &Û Ý Û Û Ý Û Û 
Û Û ðHÛÛÛó Ý -Ý )Ý )÷ ð !×'Ò'Ù;ñ=Ð ô"˜$×2Ñ2ô "ô,(˜×4Ñ4ô (ôe˜Ÿ™×/Ñ/ô eòP5ð. 
‡�ô(�Xó (ó ñ(øðS	 ó HÙ
Ð=Ó
>ÀCÐGûðHús   ²C ÃC(Ã	C#Ã#C(