Ë
    µ2Úi?"  ã                   óŠ  — d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	 ddl
mZ ddlmZ d dlmZmZmZmZmZmZ  G d„ d	ej*                  e«      Z G d
„ deej.                  e«      Z G d„ dej$                  e«      Z G d„ dej4                  e«      Ze j8                  d„ «       Zej<                   G d„ de«      «       Zy)é    N)Ú_apiÚcbook)ÚGcfé   )Ú_macosx)ÚFigureCanvasAgg)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚNavigationToolbar2ÚResizeEventÚ	TimerBasec                   ó   — e Zd ZdZy)ÚTimerMacz6Subclass of `.TimerBase` using CFRunLoop timer events.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úY/var/www/html/acx/venv/lib/python3.12/site-packages/matplotlib/backends/backend_macosx.pyr   r      s   „ Ú@r   r   c                   ó‚   ‡ — e Zd ZdZeZ ej                  d„ «      Zˆ fd„Z	ˆ fd„Z
d„ Zd„ Zd„ Zdˆ fd„	Zd	„ Zdd
„Zˆ xZS )ÚFigureCanvasMacÚmacosxc                 ó   — t         S ©N)ÚFigureManagerMac©Úclss    r   ú<lambda>zFigureCanvasMac.<lambda>%   s   € Ô3C€ r   c                 ó`   •— t         ‰| �  |¬«       d| _        d| _        t	        «       | _        y )N)ÚfigureF)ÚsuperÚ__init__Ú_draw_pendingÚ_is_drawingÚsetÚ_timers)Úselfr"   Ú	__class__s     €r   r$   zFigureCanvasMac.__init__'   s,   ø€ Ü‰Ñ ÐÔ'Ø"ˆÔØ ˆÔä“uˆ�r   c                 ó´   •— | j                   ryt        j                  | d¬«      5  t        ‰| �  «        ddd«       | j                  «        y# 1 sw Y   ŒxY w)z/Render the figure and update the macosx canvas.NT)r&   )r&   r   Ú_setattr_cmr#   ÚdrawÚupdate)r)   r*   s    €r   r-   zFigureCanvasMac.draw.   sH   ø€ ð ×ÒØÜ×Ñ˜t°Ô6ñ 	Ü‰G‰LŒN÷	à�‰�÷	ð 	ús   ¦AÁAc                 ó€   — t        | dd«      s1t        | dd«      s#d| _        | j                  | j                  «       y y y )Nr%   Fr&   T)Úgetattrr%   Ú_single_shot_timerÚ
_draw_idle©r)   s    r   Ú	draw_idlezFigureCanvasMac.draw_idle8   s@   € ä˜˜o¨uÔ5Ü˜˜m¨UÔ3Ø!%ˆDÔð ×#Ñ# D§O¡OÕ4ð	 4ð 6r   c                 ó¾   ‡ — ˆ fd„}‰ j                  d¬«      }d|_        |j                  |||«       ‰ j                  j	                  |«       |j                  «        y)z/Add a single shot timer with the given callbackc                 ój   •—  | «        ‰j                   j                  |«       |j                  «        y r   )r(   ÚremoveÚstop)ÚcallbackÚtimerr)   s     €r   Úcallback_funcz9FigureCanvasMac._single_shot_timer.<locals>.callback_funcF   s#   ø€ ÙŒJØ�L‰L×Ñ Ô&Ø�J‰J�Lr   r   )ÚintervalTN)Ú	new_timerÚsingle_shotÚadd_callbackr(   ÚaddÚstart)r)   r9   r;   r:   s   `   r   r1   z"FigureCanvasMac._single_shot_timerA   sO   ø€ ô
	ð —‘¨�Ó*ˆØ ˆÔØ×Ñ˜=¨(°EÔ:Ø�‰×Ñ˜ÔØ�‰�r   c                 ó¨   — | j                  «       5  | j                  s
	 ddd«       yd| _        | j                  «        ddd«       y# 1 sw Y   yxY w)a	  
        Draw method for singleshot timer

        This draw method can be added to a singleshot timer, which can
        accumulate draws while the eventloop is spinning. This method will
        then only draw the first time and short-circuit the others.
        NF)Ú_idle_draw_cntxr%   r-   r3   s    r   r2   zFigureCanvasMac._draw_idleP   sP   € ð ×!Ñ!Ó#ñ 	Ø×%Ò%ð ÷		ð 	ð
 "'ˆDÔØ�I‰IŒK÷	÷ 	ñ 	ús   ‘A¨AÁAc                 óD   •— t         ‰| �  |«       | j                  «        y r   )r#   Úblitr.   )r)   Úbboxr*   s     €r   rE   zFigureCanvasMac.blit`   s   ø€ ä‰‰�TÔØ�‰�r   c                 óî   — | j                   j                  | j                  z  }||z  }||z  }| j                   j                  ||d¬«       t	        d| «      j                  «        | j                  «        y )NF)ÚforwardÚresize_event)r"   ÚdpiÚdevice_pixel_ratioÚset_size_inchesr   Ú_processr4   )r)   ÚwidthÚheightÚscales       r   ÚresizezFigureCanvasMac.resizee   sb   € à—‘—‘ $×"9Ñ"9Ñ9ˆØ�‰ˆØ�%‰ˆØ�‰×#Ñ# E¨6¸5Ð#ÔAÜ�N DÓ)×2Ñ2Ô4Ø�‰Õr   c                 óf   — t        «       5  | j                  |¬«       d d d «       y # 1 sw Y   y xY w)N)Útimeout)Ú_maybe_allow_interruptÚ_start_event_loop)r)   rS   s     r   Ústart_event_loopz FigureCanvasMac.start_event_loopn   s0   € ä#Ó%ñ 	4ð ×"Ñ"¨7Ð"Ô3÷	4÷ 	4ñ 	4ús   ‹'§0r   )r   )r   r   r   Úrequired_interactive_frameworkr   Ú
_timer_clsr   ÚclasspropertyÚmanager_classr$   r-   r4   r1   r2   rE   rQ   rV   Ú__classcell__©r*   s   @r   r   r      sK   ø„ ð &.Ð"Ø€JØ&�D×&Ñ&Ñ'CÓD€Môôò5òòõ ò
÷4r   r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚNavigationToolbar2Macc           	      ó  ‡— t        j                  d«      Št        t        j                  Ž \  }}}}t
        j                  j                  | |t        ˆfd„|D «       «      t        d„ |D «       «      «       t        j                  | |«       y )NÚimagesc              3   óD   •K  — | ]  }|�t        ‰|z  «      dz   –— Œ y ­w)Nz.pdf)Ústr)Ú.0Ú
image_nameÚ	data_paths     €r   ú	<genexpr>z1NavigationToolbar2Mac.__init__.<locals>.<genexpr>}   s/   øè ø€ ò KØ °:Ð3Iô �i *Ñ,Ó-°Õ6ñ Kùs   ƒ c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr   r   )rc   Útooltips     r   rf   z1NavigationToolbar2Mac.__init__.<locals>.<genexpr>   s   è ø€ ÒI˜g°WÑ5H”'ÑIùs   ‚Š)r   Ú_get_data_pathÚzipr   Ú	toolitemsr   r$   Útuple)r)   ÚcanvasÚ_ÚtooltipsÚimage_namesre   s        @r   r$   zNavigationToolbar2Mac.__init__x   s   ø€ Ü×(Ñ(¨Ó2ˆ	Ü&)Ô+=×+GÑ+GÐ&HÑ#ˆˆ8�[ !Ü×"Ñ"×+Ñ+Ø�&Üó KØ$/ôKó KäÑI¨ÔIÓIô		Kô
 	×#Ñ# D¨&Õ1r   c                 óˆ   — | j                   j                  t        |«      t        |«      t        |«      t        |«      «       y r   )rm   Úset_rubberbandÚint)r)   ÚeventÚx0Úy0Úx1Úy1s         r   Údraw_rubberbandz%NavigationToolbar2Mac.draw_rubberband‚   s*   € Ø�‰×"Ñ"¤3 r£7¬C°«G´S¸³W¼cÀ"»gÕFr   c                 ó8   — | j                   j                  «        y r   )rm   Úremove_rubberbandr3   s    r   r{   z'NavigationToolbar2Mac.remove_rubberband…   s   € Ø�‰×%Ñ%Õ'r   c                 ó˜  — t         j                  j                  t        j                  d   «      }t        j                  d|| j                  j                  «       «      }|€y t        j                  d   r0t         j                  j                  |«      t        j                  d<   | j                  j                  j                  |«       y )Nzsavefig.directoryzSave the figure)ÚosÚpathÚ
expanduserÚmplÚrcParamsr   Úchoose_save_filerm   Úget_default_filenameÚdirnamer"   Úsavefig)r)   ÚargsÚ	directoryÚfilenames       r   Úsave_figurez!NavigationToolbar2Mac.save_figureˆ   s“   € Ü—G‘G×&Ñ&¤s§|¡|Ð4GÑ'HÓIˆ	Ü×+Ñ+Ð,=Ø,5Ø,0¯K©K×,LÑ,LÓ,NóPˆð ÐØä�<‰<Ð+Ò,Ü02·±·±ÀÓ0IŒC�L‰LÐ,Ñ-Ø�‰×Ñ×"Ñ" 8Õ,r   N)r   r   r   r$   ry   r{   r‰   r   r   r   r^   r^   v   s   „ ò2òGò(ó
-r   r^   c                   óD   ‡ — e Zd ZeZd„ Zd„ Zˆ fd„Zed„ «       Z	d„ Z
ˆ xZS )r   c                 ó  — d| _         t        j                  j                  | |«       t	        t        j                  d«      «      }t        j                  j                  |«       t        j                  | ||«       | j                  t        j                  d   «       | j                  �| j                  j                  «        t        j                  «       r+| j                  «        | j                   j#                  «        y y )NFzimages/matplotlib.pdfzmacosx.window_mode)Ú_shownr   ÚFigureManagerr$   rb   r   ri   Úset_iconr   Ú_set_window_moder€   r�   Útoolbarr.   Úis_interactiveÚshowrm   r4   )r)   rm   ÚnumÚ	icon_paths       r   r$   zFigureManagerMac.__init__˜   s·   € ØˆŒÜ×Ñ×&Ñ& t¨VÔ4Üœ×,Ñ,Ð-DÓEÓFˆ	Ü×Ñ×&Ñ& yÔ1Ü×"Ñ" 4¨°Ô5Ø×ÑœcŸl™lÐ+?Ñ@ÔAØ�<‰<Ð#Ø�L‰L×ÑÔ!Ü×ÑÔØ�I‰IŒKØ�K‰K×!Ñ!Õ#ð  r   c                 ób   — t        j                  | «       | j                  j                  «        y r   )r   Údestroyrm   Úflush_eventsr3   s    r   Ú_close_button_pressedz&FigureManagerMac._close_button_pressed¥   s   € Ü�‰�DÔØ�‰× Ñ Õ"r   c                 óä   •— | j                   j                  rK| j                   j                  j                  «       }|j                  «        | j                   j                  rŒKt        ‰| �  «        y r   )rm   r(   Úpopr8   r#   r–   )r)   r:   r*   s     €r   r–   zFigureManagerMac.destroy©   sN   ø€ ð �k‰k×!Ò!Ø—K‘K×'Ñ'×+Ñ+Ó-ˆEØ�J‰JŒLð �k‰k×!Ó!ô 	‰‰Õr   c                 ój   — t        «       5  t        j                  «        d d d «       y # 1 sw Y   y xY wr   )rT   r   r’   r   s    r   Ústart_main_loopz FigureManagerMac.start_main_loop±   s(   € ô
 $Ó%ñ 	Ü�L‰LŒN÷	÷ 	ñ 	ús   ‹)©2c                 ó’   — | j                   s| j                  «        d| _         t        j                  d   r| j	                  «        y y )NTzfigure.raise_window)rŒ   Ú_showr€   r�   Ú_raiser3   s    r   r’   zFigureManagerMac.show¹   s4   € Ø�{Š{Ø�J‰JŒLØˆDŒKÜ�<‰<Ð-Ò.Ø�K‰K�Mð /r   )r   r   r   r^   Ú_toolbar2_classr$   r˜   r–   Úclassmethodrœ   r’   r[   r\   s   @r   r   r   •   s0   ø„ Ø+€Oò$ò#ôð ñó ðör   r   c               #   ó�  ‡K  — t        j                  t         j                  «      } | dt         j                  t         j                  fv rd–— ydŠt        j                  «       \  }}|j                  d«       |j                  d«       t        j                  |j                  «       «      }t        j                  |j                  «       «       ˆfd„}t        j                   t         j                  |«       	 d–— |j                  «        |j                  «        t        j                  |«       t        j                   t         j                  | «       ‰� | ‰Ž  yy# |j                  «        |j                  «        t        j                  |«       t        j                   t         j                  | «       ‰� | ‰Ž  w w xY w­w)a©  
    This manager allows to terminate a plot by sending a SIGINT. It is
    necessary because the running backend prevents Python interpreter to
    run and process signals (i.e., to raise KeyboardInterrupt exception). To
    solve this one needs to somehow wake up the interpreter and make it close
    the plot window. The implementation is taken from qt_compat, see that
    docstring for a more detailed description.
    NFc                  ó2   •— | Št        j                  «        y r   )r   r8   )r†   Úhandler_argss    €r   Úhandlez&_maybe_allow_interrupt.<locals>.handle×   s   ø€ àˆÜ�‰�r   )ÚsignalÚ	getsignalÚSIGINTÚSIG_IGNÚSIG_DFLÚsocketÚ
socketpairÚsetblockingÚset_wakeup_fdÚfilenor   Úwake_on_fd_writeÚclose)Úold_sigint_handlerÚwsockÚrsockÚold_wakeup_fdr¥   r¤   s        @r   rT   rT   Á   sH  øè ø€ ô  ×)Ñ)¬&¯-©-Ó8ÐØ˜d¤F§N¡N´F·N±NÐCÑCÛØà€LÜ×$Ñ$Ó&�L€Eˆ5Ø	×Ñ�eÔØ	×Ñ�eÔÜ×(Ñ(¨¯©«Ó8€MÜ×Ñ˜UŸ\™\›^Ô,ôô
 ‡M�M”&—-‘- Ô(ð.Ûà�‰ŒØ�‰ŒÜ×Ñ˜]Ô+Ü�‰”f—m‘mÐ%7Ô8ØÐ#Ù Ò-ð $øð	 	�‰ŒØ�‰ŒÜ×Ñ˜]Ô+Ü�‰”f—m‘mÐ%7Ô8ØÐ#Ù Ò-ð $üs    ƒC6GÃ:E  Ã>A"GÅ A#GÇGc                   ó,   — e Zd ZeZeZej                  Zy)Ú_BackendMacN)	r   r   r   r   ÚFigureCanvasr   r�   rœ   Úmainloopr   r   r   r·   r·   è   s   „ à"€LØ$€MØ×/Ñ/�Hr   r·   ) Ú
contextlibr}   r¦   r«   Ú
matplotlibr€   r   r   Úmatplotlib._pylab_helpersr   Ú r   Úbackend_aggr   Úmatplotlib.backend_basesr	   r
   r   r   r   r   ÚTimerr   r¸   r   r^   r�   r   ÚcontextmanagerrT   Úexportr·   r   r   r   ú<module>rÃ      s½   ðÛ Û 	Û Û ã ß "Ý )Ý Ý (÷÷ ô
Aˆw�}‰}˜iô Aô
^4�o w×';Ñ';Ð=Mô ^4ôB-˜G×6Ñ6Ð8Jô -ô>)�w×,Ñ,Ð.?ô )ðX ×Ññ#.ó ð#.ðL 
‡�ô0�(ó 0ó ñ0r   