a
    ëÝEbº.  ã                   @   sl  d dl Z d dlZ d dlZd dlZd dlZd dlZd dlZd dlZ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 dd„ ZdZdd„ Zej deƒ ¡ej d	d
dg¡ejjdd�dd„ ƒƒƒZdd„ Zeƒ ZeD �]Zejd  d Zdev �r
ej ejjejd�¡ qÒedk�r.ej ejjejd�¡ qÒedk�r„d dl m!Z! e "¡ d  Z"e"�ràe!e"ƒe!dƒk �ràej ejjej#dd�¡ qÒejd   $d¡dk�r´ej ejjejd�¡ qÒedkrÒe %¡ dkrÒej ejjddd �¡ qÒej de¡ejjdd�d!d"„ ƒƒZ&ejj'd#ej(v d$d%�ejj'ej)d&kd'd%�d(d)„ ƒƒZ*ejj'ejd*kd+d%�ejjd,dd-�d.d/„ ƒƒZ+dS )0é    N)Ú_c_internal_utilsc            	      C   s–  g } g dd„ dD ƒ¢dd„ dD ƒ¢dd„ dD ƒ¢dgdd	if‘d
gdd
if‘d
gddif‘dgddif‘D �]$\}}d }dd„ |D ƒ}t jdkržt ¡ sžd}n||r´d d |¡¡}nf|d dkrÒtj d¡rÒd}nH|d  	d¡�rdd l
}|d d }|j ¡ }|› d�| d¡v�rd}g }|�rF| tjjd|› d|› �d�¡ n0|d  	d
¡�rvt jdk�rv| tjjdd�¡ |  tj||t|ƒd �¡ qj| S )!Nc                 S   s   g | ]}|gd |dœf‘qS )Zqtagg©Ú
MPLBACKENDÚQT_API© ©Ú.0Zqt_apir   r   új/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_backends_interactive.pyÚ
<listcomp>   s   þÿz6_get_testable_interactive_backends.<locals>.<listcomp>)ZPyQt6ZPySide6ZPyQt5ÚPySide2c                 S   s   g | ]}|d gd|dœf‘qS )Ú	cairocffiZqtcairor   r   r   r   r   r	   r
      s   þÿc                 S   s0   g | ](}d D ]}ddgdd|› |› �if‘qqS ))ÚaggÚcairor   Úgir   Úgtkr   )r   ÚversionÚrendererr   r   r	   r
       s   
ÿ)é   é   Útkinterr   ÚtkaggÚwxZwxaggzmatplotlib.backends._macosxÚmacosxc                 S   s   g | ]}t j |¡s|‘qS r   )Ú	importlibÚutilÚ	find_spec)r   Údepr   r   r	   r
   (   ó    Úlinuxz'$DISPLAY and $WAYLAND_DISPLAY are unsetz{} cannot be importedz, ÚTF_BUILDzmacosx backend fails on Azurer   r   r   z.0ZGtkzno usable GTK bindingsz	Skipping z	 because ©ÚreasonÚdarwinzgithub #16849)ÚmarksÚid)ÚsysÚplatformr   Zdisplay_is_validÚformatÚjoinÚosÚenvironÚgetÚ
startswithr   Z
RepositoryÚget_defaultZenumerate_versionsÚappendÚpytestÚmarkÚskipÚxfailÚparamÚstr)	ZenvsÚdepsÚenvr!   Úmissingr   r   Úrepor#   r   r   r	   Ú"_get_testable_interactive_backends   s^    þÿþüÿù	÷
öõô
ÿ

ÿ
r9   é<   c                     s0  dd l } dd l}dd l}dd l}ddlm} dd l‰ddlm‰m} ddl	m
} | dddœ¡ t|jƒdkr„| | |jd ¡¡ ˆjd	  ¡ }|ƒ j‰ |ƒ j}| d
¡�r<| d¡�s<ˆ ¡  |dk�r|tƒ� ˆjddd� W d   ƒ n1 sø0    Y  ‡ ‡‡fdd„}	| j d¡�r4|	|d d… d ƒ |	dƒ ˆj|dd� ˆ ¡ \}
}ˆ t|
jƒjd |¡ƒ | ddgddg¡ |
j d¡‰ˆ  |j!|
jd¡ |
j "d‡fdd„¡ |
j "dt#¡ | $¡ }|
j%|dd� ˆ &¡  ˆ 'd¡ | $¡ }|
j%|dd� | d ¡�s,|j(d!k�r,ˆ | )¡ | )¡ ƒ d S )"Nr   )ÚTestCase©ÚpyplotÚrcParams)ÚFigureCanvasBaseFé   ©zwebagg.open_in_browserzwebagg.port_retriesé   Úbackendr   )r   Zwebr   T©Úforcec                    s2   ˆj | dd� ˆ ¡ }ˆ t|jƒjd | ¡ƒ d S )NTrD   úmatplotlib.backends.backend_{})ÚuseÚfigureÚtypeÚcanvasÚ
__module__r'   )Zalt_backendÚfig)Úassert_equalÚmplÚpltr   r	   Úcheck_alt_backendp   s    
þz1_test_interactive_impl.<locals>.check_alt_backendr   éýÿÿÿr   ÚsvgrF   r   g      ð?ÚqZ
draw_eventc                    s   ˆ   ¡ S )N)Ústart)Úevent)Útimerr   r	   Ú<lambda>‡   r   z(_test_interactive_impl.<locals>.<lambda>Úclose_eventZpng)r'   ç      à?Zqt5r"   )*Úimportlib.utilÚioÚjsonr%   Zunittestr;   Ú
matplotlibr=   r>   Zmatplotlib.backend_basesr?   ÚupdateÚlenÚargvÚloadsÚlowerÚassertEqualÚassertRaisesÚendswithr,   rH   ÚImportErrorrG   r   r   ÚsubplotsrI   rJ   rK   r'   ÚplotZ	new_timerZadd_callbackZkey_press_eventÚmpl_connectÚprintÚBytesIOZsavefigÚshowÚpauser&   Úgetvalue)r   r[   r\   r%   r;   r>   r?   rC   Zassert_raisesrP   rL   ÚaxÚresultZresult_afterr   )rM   rN   rO   rV   r	   Ú_test_interactive_implK   sZ    þ


,
þ
rq   r6   ÚtoolbarZtoolbar2Útoolmanagerr   )Zrerunsc                 C   s–   | d dkr|dkrt  d¡ tjtjdt t¡d t	 
d|i¡gi tj¥dd	i¥| ¥ttjd
d�}|jr~t  d|j› d�¡ |j d¡dks’J ‚d S )Nr   r   rs   z*toolmanager is not implemented for macosx.ú-cú
_test_interactive_impl()rr   ÚSOURCE_DATE_EPOCHÚ0T)r6   ÚtimeoutÚstdoutÚuniversal_newlinesú2The subprocess returned with non-zero exit status Ú.Ú
CloseEventr@   )r/   r1   Ú
subprocessÚrunr%   Ú
executableÚinspectÚ	getsourcerq   r\   Údumpsr)   r*   Ú_test_timeoutÚPIPEÚ
returncodeÚfailry   Úcount)r6   rr   Úprocr   r   r	   Útest_interactive_backend�   s&    
ÿýùÿ
rŠ   c                  C   sØ   ddl m}  dd l}dd l}ddlm}m} | dddœ¡ t|j	ƒdkr`| | 
|j	d ¡¡ | ¡ \}}| d¡ | ƒ  |jg d	¢¡}| ¡  |j d
t¡ | ƒ  |jj¡}| d¡ | ¡  | ¡  |j ¡  d S )Nr   )ÚThreadPoolExecutorr<   Fr@   rA   rB   rY   )r@   r   é   rX   )Úconcurrent.futuresr‹   r\   r%   r]   r=   r>   r^   r_   r`   ra   rg   rm   Úsubmitrh   rp   rJ   ri   rj   ZdrawÚcloseZflush_events)r‹   r\   r%   rO   r>   rL   ro   Úfuturer   r   r	   Ú_test_thread_implµ   s(    þ

r‘   r   r   )Úraisesr   r   )Úparsez10.16T)r’   Ústrictr   r   r   ÚCPythonzZPyPy does not support Tkinter threading: https://foss.heptapod.net/pypy/pypy/-/issues/1929)r!   r”   c                 C   sT   t jtjdt t¡d gi tj¥ddi¥| ¥t	dt j
dd�}|j d¡dksPJ ‚d S )	Nrt   z
_test_thread_impl()rv   rw   T)r6   rx   Úcheckry   rz   r}   r@   )r~   r   r%   r€   r�   r‚   r‘   r)   r*   r„   r…   ry   rˆ   )r6   r‰   r   r   r	   Útest_interactive_thread_safetyô   s    ÿûr—   r   z,this test fails an azure for unknown reasonsr    ÚntzCannot send SIGINT on Windows.c                  C   sè   t  d¡ tjtjdt t¡d gi t	j
¥dddœ¥d�} d tjd	 tjd
 ¡}t ¡ t }z(|  ¡ }|d u stJ ‚tj |¡}W q¼W q^ tjjy¸   t ¡ |kr°t  d¡ nY q^Y q^0 q^| ¡  |  tj¡ | jtd�dksäJ ‚d S )NÚtornadort   ru   Zwebaggrw   )r   rv   ©r6   zhttp://{}:{}zwebagg.addresszwebagg.portz'Failed to connect to the webagg server.)rx   r   )r/   Zimportorskipr~   ÚPopenr%   r€   r�   r‚   rq   r)   r*   r'   rN   r>   ÚtimeÚperf_counterr„   ÚpollÚurllibÚrequestÚurlopenÚerrorÚURLErrorr‡   r�   Úsend_signalÚsignalÚSIGINTÚwait)r‰   Úurlrx   ÚretcodeÚconnr   r   r	   Útest_webagg   s2    
ÿÿüÿr«   r   zthis a linux-only testZQtAgg)Zskip_on_importerrorc                  C   sF   d} t jtjd| gi tj¥ddi¥d�}|jrBt d|j› d�¡ d S )NaÚ  
import os
import sys

# make it look headless
os.environ.pop('DISPLAY', None)
os.environ.pop('WAYLAND_DISPLAY', None)

# we should fast-track to Agg
import matplotlib.pyplot as plt
plt.get_backend() == 'agg'
assert 'PyQt5' not in sys.modules

# make sure we really have pyqt installed
import PyQt5
assert 'PyQt5' in sys.modules

# try to switch and make sure we fail with ImportError
try:
    plt.switch_backend('qt5agg')
except ImportError:
    ...
else:
    sys.exit(1)

rt   r   Ú rš   r{   r|   )	r~   r   r%   r€   r)   r*   r†   r/   r‡   )Ztest_scriptr‰   r   r   r	   Útest_lazy_linux_headless  s    ÿÿr­   ),r   rZ   r�   r\   r)   r&   r¥   r~   r%   rœ   Úurllib.requestrŸ   r/   r]   rN   r   r9   r„   rq   r0   ZparametrizeZflakyrŠ   r‘   Z_thread_safe_backendsr3   ÚvaluesrC   r#   r.   r2   ÚCalledProcessErrorZpackaging.versionr“   Úmac_verÚTimeoutExpiredr+   Úpython_implementationr—   Zskipifr*   Únamer«   r­   r   r   r   r	   Ú<module>   s~   *
R

ÿ
ÿ

ÿÿÿýÿ
ÿ