rL i"0ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z dZ ddZ e ddZ e d d Zejj!ej"d k7d ejj%de d dZejj%de ddZe ddZe ddZe d dZe ddZy)N)_c_internal_utils)subprocess_run_helper<ctjtSdtjvrSt j jtjjd dt j jtjdk(xrtj dt j jdtjvxsd tjvxr+tjd k(xrtj dd d kd tj"fd}|S)z A decorator to run *func* in a subprocess and assert that it prints "success" *success_count* times and nothing on stderr. TkAgg tests seem to have interactions between tests, so isolate each test in a subprocess. See GH#18261 NMPL_TEST_ESCAPE_HATCHtkinterzmissing tkinterreasonlinuxz$DISPLAY is unsetTF_BUILD GITHUB_ACTIONdarwin) z%Tk version mismatch on Azure macOS CIc&tjd ttt dd}gd}|j j Dcgc]tfd|Drc}rJ|jjdk(sJycc}w#tj$rtjd Yytj$r5}tjd t|j zYd}~yd}~wwxYw) NrTkAgg1) MPLBACKENDr)timeout extra_env)OpenGLz!CFMessagePort: bootstrap_registerz%/usr/include/servers/bootstrap_defs.hc3&K|]}|v ywN).0msglines f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/tests/test_backend_tk.py z7_isolated_tk_test..test_func..EsH3s$HssuccesszSubprocess timed outz,Subprocess failed to test intended behavior )pytest importorskipr _test_timeoutdictstderr splitlinesallstdoutcount subprocessTimeoutExpiredfailCalledProcessErrorstr)proc ignored_linesrefunc success_counts ` r test_funcz$_isolated_tk_test..test_func!s" I& A(mt&c8CDDFM)-)?)?)AJH-HHJ JJ;;$$Y/=@ @@J(( 0 KK. /,, ) KKGahh-( ) ) )s#BB(D D+D  D) functoolspartial_isolated_tk_testosenvironr"markskipif importlibutil find_specsysplatformrxdisplay_is_validxfail version_infowraps)r4r3r5s`` rr8r8s1 |  !2MBB"**,  [[ NN $ $Y //  [[ M(9(K(K(M$M" [[ rzz ! B_ %B D   D%(%5%5bq%9G%C6 __TA   A2 )r4c ddlm}ddl}ddl}ddlm}m}|j\}}|jj}|jd|j}d} | D]D} |j|jjt|||j d| F|j'||j||dy#t"$rt%dYwxYw)Nr) _backend_tk_tkagg)rKrK)dtype))rrr)rrrr)rGrr)rrrMr)rrrr)rrrNrG)rrNrrr!)matplotlib.pyplotpyplotnumpy!matplotlib.backends.backend_tkaggmatplotlib.backendsrIrJsubplotscanvas_tkphotoonesuint8blittk interpaddrr/TK_PHOTO_COMPOSITE_OVERLAY ValueErrorprintclose) pltnp matplotlibrIrJfigax photoimagedata bad_boxesbad_boxs r test_blitriKs#,7llnGC$$J 779BHH7 -DI   KK ((*C OT11< JIIcNZ|4   )  s%AC  C$#C$rNcddl}ddlmgfd}fd|jj d|j r t dyy)Nrcjjddgddgjjdy)NrNrrr)figureplotr_after)legitimate_quitr`rootsrdo_plotz;test_figuremanager_preserves_host_mainloop..do_plotos9  !Q!Q   1o&rFcHjjdyNT)quitappend)rqr!srrpzCtest_figuremanager_preserves_host_mainloop..legitimate_quitus trFr!)rrOrPTkromainloopr^)rrrrpr`rqr!s @@@@r*test_figuremanager_preserves_host_mainloopryisL#G'  ::.targetsJ<>> JJsO<>>  # # % )  &rFT)rdaemonblock)rrrOrP threadingmatplotlib.cbookr}rwrnEventThreadstartshowsetjoin) rrrqrthreadr}r`rrs @@@@r&test_figuremanager_cleans_own_mainlooprs #C ::.Toolbarr)HomePanZoomN)__name__ __module__ __qualname__ toolitems)rtrs00rToolbarrs2 4 > >61qT446 6s+rr!) rOrPrRrrmr^rUmanagerwindow)r`rrcrs @rtest_missing_back_buttonrsQ#F6&6 **,C ) CJJ **112 )rFcddlm}ddlm}|j }d}|j |d5|j jjj}tjd|dk(sJtdddd|j |d5|j jjj}|Jtddddy#1swYcxYw#1swYyxYw)Nr)mockz$tkinter.filedialog.asksaveasfilenamez foobar.png) return_valuer!) rOrPunittestrrmpatchrUrr save_figurer9remover^)r`rrcpropfnames rtest_save_figure_returnrs# **,C 1D D| 4 ""**668 , $$$ i  Dr * ""**668}} i  sAC*#>C6*C36C?c2ddl}ddlmgfd}|jj j gdj djj d|jr tdyy)Nrcjj}|js|j|j |k(rj dj jyrt)rUrwinfo_viewablewait_visibility focus_lastforrvr_destroy)tkcanvasrcr`rqr!s r check_focusz&test_canvas_focus..check_focuss^::++-&&(  $ $ &  ! ! #x / NN4   rFr~rr!) rrOrPrwrmrnrorrxr^)rZrrcr`rqr!s @@@@rtest_canvas_focusrsp#G  557D **,CHHYJJq#((JJsK MMO irFcddl}ddlmmddlmddlm|j}fd}||td|jddd ||tdy) Nr)FigureCanvasTkAggr)key_press_handler)Figurec}|j}|jgd||}|j|jd|j j dd||d}|j dd |j j |j y) Nr~)masterkey_press_eventTboth)expandfillF) pack_toolbarx) add_subplotrnr mpl_connectrpackforget) rrcrdrUrrrrrs r test_figurez#test_embedding..test_figuresh __   "3v6 ,.?@##4f#=&vvEJ Ds +%%'rFr!zsky bluez midnight bluewhite) background selectColor foreground) rrRrrmatplotlib.backend_basesrmatplotlib.figurerrwr^ tk_setPalette)rZrqrrrrrs @@@@rtest_embeddingrs_1:( 557D  )  */")+ )rFr)r6r=r9rAr+r@r"rbrmatplotlib.testingrr$r8riryr;r<python_implementationflakyrrrrrrrrFrrsb  (4 7t#5$5:#$.2H224 AOP!#$P 2!#$,# $ # $  #$8#"$"rF