
    P/Ph>                        d dl mZ d dlmZ d dlZd dlZd dlmZm	Z	 ej
        d             Zdee         defdZej                            d	g d
          d             Zd Zej                            dej        g dfej        g dfg          d             Zd Zej                            dg d          d             Zej                            dg d          d             Zd Zd Zd Zd Zd Zd Zd Zej                            dd d!g          d"             Zej                            d#g d$          d%             Z d& Z!dS )'    )Sequence)AnyN)BackendFilterbackend_registryc               #   ^   K   t          j                     d V  t          j                     d S N)r   _clear     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_backend_registry.pyclear_backend_registryr   
   s5       	EEEr   seqreturnc                 \    t          |           t          t          |                     k    S r   )lenset)r   s    r   has_duplicatesr      s    s88c#c((mm##r   zframework,expected))qtqtagg)gtk3gtk3agg)gtk4gtk4agg)wxwxagg)tktkagg)macosxr   )headlessagg)zdoes not existNc                 :    t          j        |           |k    sJ d S r   )r   backend_for_gui_framework)	frameworkexpecteds     r   test_backend_for_gui_frameworkr%      s&     5i@@HLLLLLLr   c                  f    t          j                    } t          |           rJ h | h dk    sJ d S )N>   psr   r    pdfpgfsvgcaironbaggr   r   r   r   qt5aggwebaggr   r   qtcairotkcairowxcaironotebookqt5cairotemplate	gtk3cairo	gtk4cairor   list_builtinr   backendss    r   test_list_builtinr;   (   sX    ,..Hh'''''X;         r   zfilter,expected)r   r5   r   r6   r   r,   r2   r   r/   r-   r3   r   r0   r.   r   r   r1   )r    r+   r(   r)   r'   r*   r4   c                 h    t          j        |           }t          |          rJ h |h |k    sJ d S r   r7   )filterr$   r:   s      r   test_list_builtin_with_filterr>   4   sG      ,V44Hh'''''X;+H+%%%%%%r   c                  f    t          j                    } t          |           rJ h | h dk    sJ d S )N>   r   r   r   qt5qt6r   r   r   )r   list_gui_frameworksr   )
frameworkss    r   test_list_gui_frameworksrD   F   sX    !577Jj)))))Z=         r   zbackend, is_valid))r    T)QtAggT)zmodule://anythingT)zmade-up-nameFc                 :    t          j        |           |k    sJ d S r   )r   is_valid_backend)backendis_valids     r   test_is_valid_backendrJ   O   s&     ,W55AAAAAAr   zbackend, normalized))r    zmatplotlib.backends.backend_agg)rE   z!matplotlib.backends.backend_qtagg)zmodule://AnythingAnythingc                 :    t          j        |           |k    sJ d S r   )r   _backend_module_name)rH   
normalizeds     r   test_backend_normalizationrO   Y   s&     099ZGGGGGGr   c                     d} t          j        t          j        |           5  t          j        j         d d d            n# 1 swxY w Y   t          j        t          j        |           5  t          j        j         d d d            n# 1 swxY w Y   t          j        t          j        |           5  t          j        j         d d d            d S # 1 swxY w Y   d S )Nz was deprecated in Matplotlib 3.9match)pytestwarnsmplMatplotlibDeprecationWarningrcsetupinteractive_bknon_interactive_bkall_backendsrQ   s    r   "test_deprecated_rcsetup_attributesr[   b   s~   .E	c6e	D	D	D # #""# # # # # # # # # # # # # # #	c6e	D	D	D ' '&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	c6e	D	D	D ! !  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s5   AAA,B

BB5CCCc                  `    t          j        d           t          j                    } d| v sJ d S )Nmatplotlib_inlineinlinerS   importorskipr   list_allr9   s    r   test_entry_points_inlinerb   l   s9    
+,,,(**Hxr   c                  l    t          j        d           t          j                    } d| v sJ d| v sJ d S )Nipymplwidgetr_   r9   s    r   test_entry_points_ipymplrf   r   sI    
!!!(**Hxxr   c                     t          j        t                    5  t          j        dg           d d d            d S # 1 swxY w Y   d S )N)r   module1rS   raisesRuntimeErrorr    _validate_and_store_entry_pointsr   s    r   %test_entry_point_name_shadows_builtinrn   y   s    	|	$	$ $ $9!"	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $   =AAc                     t          j        t                    5  t          j        ddg           d d d            d S # 1 swxY w Y   d S )N)	some_namerh   )rq   module2ri   rm   s    r   test_entry_point_name_duplicaters      s    	|	$	$ B B9%'?@	B 	B 	BB B B B B B B B B B B B B B B B B Bs   >AAc                     t          t          j                  }t          j        ddg           t          t          j                  |dz   k    sJ t          j        d         dk    sJ d S )N)rq   zsome.module   rq   zmodule://some.module)r   r   _name_to_modulerl   )r   ns     r   test_entry_point_identicalrx      sw     	,--A5	%'CDF F F/00AaC7777+K8<RRRRRRRr   c                     t          j        t                    5  t          j        dg           d d d            d S # 1 swxY w Y   d S )N)zmodule://backend.somethingrh   ri   rm   s    r   test_entry_point_name_is_modulerz      s    	|	$	$ 9 9967	9 	9 	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9ro   rH   r    z(module://matplotlib.backends.backend_aggc                     t           j        rJ t          j        |          }||d fk    sJ t           j        rJ t          j                     t           j        sJ d S r   )r   _loaded_entry_pointsresolve_backendra   )r   rH   checks      r   %test_load_entry_points_only_if_neededr      sk    
  4444,W55EWdO####4444000000r   z.gui_or_backend, expected_backend, expected_gui))r    r    N)r   r   r   )TkCairor0   r   c                 T    t          j        |           \  }}||k    sJ ||k    sJ d S r   )r   resolve_gui_or_backend)gui_or_backendexpected_backendexpected_guirH   guis        r   test_resolve_gui_or_backendr      sA     $:>JJLGS&&&&&,r   c                      d} t          j        t          |           5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nz,is not a recognised GUI loop or backend namerQ   zno-such-name)rS   rj   rk   r   r   rQ   s    r   #test_resolve_gui_or_backend_invalidr      s    :E	|5	1	1	1 @ @/???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   A  AA)"collections.abcr   typingr   rS   
matplotlibrU   matplotlib.backendsr   r   fixturer   boolr   markparametrizer%   r;   INTERACTIVENON_INTERACTIVEr>   rD   rJ   rO   r[   rb   rf   rn   rs   rx   rz   r   r   r   r
   r   r   <module>r      s   $ $ $ $ $ $            ? ? ? ? ? ? ? ?   $ $$ $ $ $ $ 	 	 	 M M M	 	 	 		"
9 
9 
9	: 
	&	@	@	@	B
 
& &
 
&   , / / /  B B B . 1 1 1  
H H 
H! ! !          $ $ $B B BS S S9 9 9 	.%  1 1	 1 4     @ @ @ @ @r   