
    g>                        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                  j                  d	g d
      d        Zd Zej                  j                  dej$                  g dfej&                  g dfg      d        Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zd Zd Zd Zd Zd Zd Zd Zej                  j                  dd d!g      d"        Zej                  j                  d#g d$      d%        Z d& Z!y)'    )Sequence)AnyN)BackendFilterbackend_registryc               #   d   K   t        j                          d  t        j                          y wN)r   _clear     c/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_backend_registry.pyclear_backend_registryr   
   s#      	s   .0seqreturnc                 B    t        |       t        t        |             kD  S 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                 8    t        j                  |       |k(  sJ y r   )r   backend_for_gui_framework)	frameworkexpecteds     r   test_backend_for_gui_frameworkr%      s     55i@HLLLr   c                  \    t        j                         } t        |       rJ h | h dk(  sJ y )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;   (   s9    ,,.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                 ^    t        j                  |       }t        |      rJ h |h |k(  sJ y r   r7   )filterr$   r:   s      r   test_list_builtin_with_filterr>   4   s8      ,,V4Hh'''X;+H+%%%r   c                  \    t        j                         } t        |       rJ h | h dk(  sJ y )N>   r   r   r   qt5qt6r   r   r   )r   list_gui_frameworksr   )
frameworkss    r   test_list_gui_frameworksrD   F   s9    !557Jj)))Z=    r   zbackend, is_valid))r    T)QtAggT)zmodule://anythingT)zmade-up-nameFc                 8    t        j                  |       |k(  sJ y 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                 8    t        j                  |       |k(  sJ y r   )r   _backend_module_name)rH   
normalizeds     r   test_backend_normalizationrO   Y   s     009ZGGGr   c                      d} t        j                  t        j                  |       5  t        j                  j
                   d d d        t        j                  t        j                  |       5  t        j                  j                   d d d        t        j                  t        j                  |       5  t        j                  j                   d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)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 #""#	c66e	D '&&'	c66e	D !  ! !	# #' '! !s#   C0C(8C4C%(C14C=c                  b    t        j                  d       t        j                         } d| v sJ y )Nmatplotlib_inlineinlinerS   importorskipr   list_allr9   s    r   test_entry_points_inlinerb   l   s-    
+,((*Hxr   c                  n    t        j                  d       t        j                         } d| v sJ d| v sJ y )Nipymplwidgetr_   r9   s    r   test_entry_points_ipymplrf   r   s:    
!((*Hxxr   c                     t        j                  t              5  t        j                  dg       d d d        y # 1 sw Y   y xY w)N)r   module1rS   raisesRuntimeErrorr    _validate_and_store_entry_pointsr   s    r   %test_entry_point_name_shadows_builtinrn   y   s7    	|	$ $99!"	$$ $ $	   :Ac                     t        j                  t              5  t        j                  ddg       d d d        y # 1 sw Y   y xY w)N)	some_namerh   )rq   module2ri   rm   s    r   test_entry_point_name_duplicaters      s?    	|	$ B99%'?@	BB B Bs	   ;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 y )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                     t        j                  t              5  t        j                  dg       d d d        y # 1 sw Y   y xY w)N)zmodule://backend.somethingrh   ri   rm   s    r   test_entry_point_name_is_modulerz      s7    	|	$ 99967	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 y 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WdO###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    t        j                  |       \  }}||k(  sJ ||k(  sJ y r   )r   resolve_gui_or_backend)gui_or_backendexpected_backendexpected_guirH   guis        r   test_resolve_gui_or_backendr      s5     $::>JLGS&&&&,r   c                      d} t        j                  t        |       5  t        j                  d       d d d        y # 1 sw Y   y xY w)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 @//?@ @ @s	   =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   