o
    j>                     @   s`  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d Zdee defd	d
Zejdg ddd Zdd Zejdejg dfejg dfgdd Zdd Zejdg ddd Zejdg ddd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zejd.d/d0gd1d2 Zejd3g d4d5d6 Z d7d8 Z!dS )9    )Sequence)AnyN)BackendFilterbackend_registryc                   c   s    t   d V  t   d S N)r   _clear r   r   g/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_backend_registry.pyclear_backend_registry
   s   r
   seqreturnc                 C   s   t | t t| kS r   )lenset)r   r   r   r	   has_duplicates   s   r   zframework,expected))qtqtagg)gtk3gtk3agg)gtk4gtk4agg)wxwxagg)tktkagg)macosxr   )Zheadlessagg)zdoes not existNc                 C      t | |ks	J d S r   )r   Zbackend_for_gui_framework)Z	frameworkexpectedr   r   r	   test_backend_for_gui_framework   s   r   c                  C   ,   t  } t| r
J h | h dksJ d S )N>   r   pspdf	gtk4cairoqt5cairor   svgwebaggr   wxcairor   	gtk3cairotemplatetkcaironbaggr   pgfcairor   notebookqtcairoqt5aggr   r   r   Zlist_builtinr   backendsr   r   r	   test_list_builtin(      r3   zfilter,expected)r   r'   r   r"   r   r*   r-   r   r.   r/   r#   r   r)   r%   r   r   r&   )r   r,   r!   r+   r    r$   r(   c                 C   s.   t | }t|rJ h |h |ksJ d S r   r0   )filterr   r2   r   r   r	   test_list_builtin_with_filter4   s   
r6   c                  C   r   )N>   Zqt5r   r   r   r   Zqt6r   r   )r   Zlist_gui_frameworksr   )Z
frameworksr   r   r	   test_list_gui_frameworksF   r4   r7   zbackend, is_valid))r   T)QtAggT)zmodule://anythingT)zmade-up-nameFc                 C   r   r   )r   Zis_valid_backend)backendZis_validr   r   r	   test_is_valid_backendO   s   r:   zbackend, normalized))r   zmatplotlib.backends.backend_agg)r8   z!matplotlib.backends.backend_qtagg)zmodule://AnythingZAnythingc                 C   r   r   )r   Z_backend_module_name)r9   
normalizedr   r   r	   test_backend_normalizationY   s   r<   c                  C   s   d} t jtj| d tjj W d    n1 sw   Y  t jtj| d tjj W d    n1 s5w   Y  t jtj| d tjj W d    d S 1 sRw   Y  d S )Nz was deprecated in Matplotlib 3.9match)pytestZwarnsmplZMatplotlibDeprecationWarningZrcsetupZinteractive_bkZnon_interactive_bkZall_backendsr=   r   r   r	   "test_deprecated_rcsetup_attributesb   s   


"rA   c                  C   s"   t d t } d| v sJ d S )NZmatplotlib_inlineinliner?   Zimportorskipr   list_allr1   r   r   r	   test_entry_points_inlinel   s   
rE   c                  C   s.   t d t } d| v sJ d| v sJ d S )NZipymplZwidgetrC   r1   r   r   r	   test_entry_points_ipymplr   s   
rF   c                 C   <   t t tdg W d    d S 1 sw   Y  d S )N)r   module1r?   raisesRuntimeErrorr    _validate_and_store_entry_pointsr
   r   r   r	   %test_entry_point_name_shadows_builtiny   
   "rN   c                 C   s>   t t tddg W d    d S 1 sw   Y  d S )N)	some_namerH   )rP   Zmodule2rI   rM   r   r   r	   test_entry_point_name_duplicate   s
   "rQ   c                 C   sD   t tj}tddg t tj|d ksJ tjd dks J d S )N)rP   zsome.module   rP   zmodule://some.module)r   r   Z_name_to_modulerL   )r
   nr   r   r	   test_entry_point_identical   s   
rT   c                 C   rG   )N)zmodule://backend.somethingrH   rI   rM   r   r   r	   test_entry_point_name_is_module   rO   rU   r9   r   z(module://matplotlib.backends.backend_aggc                 C   sD   t jrJ t |}||d fksJ t jrJ t   t js J d S r   )r   Z_loaded_entry_pointsZresolve_backendrD   )r
   r9   checkr   r   r	   %test_load_entry_points_only_if_needed   s   


rW   z.gui_or_backend, expected_backend, expected_gui))r   r   N)r   r   r   )ZTkCairor)   r   c                 C   s*   t | \}}||ksJ ||ksJ d S r   )r   resolve_gui_or_backend)Zgui_or_backendZexpected_backendZexpected_guir9   guir   r   r	   test_resolve_gui_or_backend   s   	rZ   c                  C   sB   d} t jt| d td W d    d S 1 sw   Y  d S )Nz,is not a recognised GUI loop or backend namer=   zno-such-name)r?   rJ   rK   r   rX   r=   r   r   r	   #test_resolve_gui_or_backend_invalid   s   "r[   )"collections.abcr   typingr   r?   Z
matplotlibr@   Zmatplotlib.backendsr   r   Zfixturer
   boolr   markZparametrizer   r3   ZINTERACTIVEZNON_INTERACTIVEr6   r7   r:   r<   rA   rE   rF   rN   rQ   rT   rU   rW   rZ   r[   r   r   r   r	   <module>   s`    


	



	
