
    h>                        S SK Jr  S SKJr  S SKrS SKrS SKJrJ	r	  \R                  S 5       rS\\   S\4S jr\R                  R                  S	/ S
Q5      S 5       rS r\R                  R                  S\R$                  / SQ4\R&                  / SQ4/5      S 5       rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       rS rS rS rS rS rS rS r\R                  R                  SS S!/5      S" 5       r\R                  R                  S#/ S$Q5      S% 5       r S& r!g)'    )Sequence)AnyN)BackendFilterbackend_registryc               #   h   #    [         R                  " 5         S v   [         R                  " 5         g 7fN)r   _clear     X/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_backend_registry.pyclear_backend_registryr   
   s"      	s   02seqreturnc                 B    [        U 5      [        [        U 5      5      :  $ r   )lenset)r   s    r   has_duplicatesr      s    s8c#c(m##r   zframework,expected))qtqtagg)gtk3gtk3agg)gtk4gtk4agg)wxwxagg)tktkagg)macosxr   )headlessagg)zdoes not existNc                 <    [         R                  " U 5      U:X  d   eg r   )r   backend_for_gui_framework)	frameworkexpecteds     r   test_backend_for_gui_frameworkr%      s     55i@HLLLr   c                  j    [         R                  " 5       n [        U 5      (       a   e1 U k1 Sk:X  d   eg )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;   (   s<    ,,.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                 l    [         R                  " U 5      n[        U5      (       a   e1 Uk1 Uk:X  d   eg r   r7   )filterr$   r:   s      r   test_list_builtin_with_filterr>   4   s;      ,,V4Hh''''X;+H+%%%r   c                  j    [         R                  " 5       n [        U 5      (       a   e1 U k1 Sk:X  d   eg )N>   r   r   r   qt5qt6r   r   r   )r   list_gui_frameworksr   )
frameworkss    r   test_list_gui_frameworksrD   F   s<    !557Jj))))Z=    r   zbackend, is_valid))r    T)QtAggT)zmodule://anythingT)zmade-up-nameFc                 <    [         R                  " U 5      U:X  d   eg r   )r   is_valid_backend)backendis_valids     r   test_is_valid_backendrJ   O   s     ,,W5AAAr   zbackend, normalized))r    zmatplotlib.backends.backend_agg)rE   z!matplotlib.backends.backend_qtagg)zmodule://AnythingAnythingc                 <    [         R                  " U 5      U:X  d   eg r   )r   _backend_module_name)rH   
normalizeds     r   test_backend_normalizationrO   Y   s     009ZGGGr   c                     Sn [         R                  " [        R                  U S9   [        R                  R
                    S S S 5        [         R                  " [        R                  U S9   [        R                  R                    S S S 5        [         R                  " [        R                  U S9   [        R                  R                    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)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66e	D"" 
E	c66e	D&& 
E	c66e	D   
E	D	 
E	D	D	D	D	Ds#   C,C'2C8
C$'
C58
Dc                  j    [         R                  " S5        [        R                  " 5       n SU ;   d   eg )Nmatplotlib_inlineinlinerS   importorskipr   list_allr9   s    r   test_entry_points_inlinerb   l   s-    
+,((*Hxr   c                  z    [         R                  " S5        [        R                  " 5       n SU ;   d   eSU ;   d   eg )Nipymplwidgetr_   r9   s    r   test_entry_points_ipymplrf   r   s:    
!((*Hxxr   c                     [         R                  " [        5         [        R                  " S/5        S S S 5        g ! , (       d  f       g = f)N)r   module1rS   raisesRuntimeErrorr    _validate_and_store_entry_pointsr   s    r   %test_entry_point_name_shadows_builtinrn   y   s.    	|	$99!"	$ 
%	$	$	   <
A
c                     [         R                  " [        5         [        R                  " SS/5        S S S 5        g ! , (       d  f       g = f)N)	some_namerh   )rq   module2ri   rm   s    r   test_entry_point_name_duplicaters      s2    	|	$99%'?@	B 
%	$	$s	   =
Ac                     [        [        R                  5      n[        R                  " SS/5        [        [        R                  5      US-   :X  d   e[        R                  S   S:X  d   eg )N)rq   zsome.module   rq   zmodule://some.module)r   r   _name_to_modulerl   )r   ns     r   test_entry_point_identicalrx      se     	,,-A55	%'CDF//0AaC777++K8<RRRRr   c                     [         R                  " [        5         [        R                  " S/5        S S S 5        g ! , (       d  f       g = f)N)zmodule://backend.somethingrh   ri   rm   s    r   test_entry_point_name_is_modulerz      s.    	|	$9967	9 
%	$	$ro   rH   r    z(module://matplotlib.backends.backend_aggc                     [         R                  (       a   e[         R                  " U5      nX!S 4:X  d   e[         R                  (       a   e[         R                  " 5         [         R                  (       d   eg r   )r   _loaded_entry_pointsresolve_backendra   )r   rH   checks      r   %test_load_entry_points_only_if_neededr      s]    
  4444,,W5EdO###44440000r   z.gui_or_backend, expected_backend, expected_gui))r    r    N)r   r   r   )TkCairor0   r   c                 P    [         R                  " U 5      u  p4X1:X  d   eXB:X  d   eg r   )r   resolve_gui_or_backend)gui_or_backendexpected_backendexpected_guirH   guis        r   test_resolve_gui_or_backendr      s.     $::>JLG&&&r   c                      Sn [         R                  " [        U S9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)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//? 
2	1	1s	   <
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	 		"	"
9	: 
	&	&	@	B
&
& , / BB . 1 
H
H!  $BS9 	.% 1	1 4@r   