o
    h>                     @   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   z/var/www/html/construction_image-detection-poc/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   )headlessagg)zdoes not existNc                 C      t | |ks	J d S r   )r   backend_for_gui_framework)	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>   psr   r   pdfpgfsvgcaironbaggr   r   r   r   qt5aggwebaggr   r   qtcairotkcairowxcaironotebookqt5cairotemplate	gtk3cairo	gtk4cairor   list_builtinr   backendsr   r   r	   test_list_builtin(      r7   zfilter,expected)r   r1   r   r2   r   r(   r.   r   r+   r)   r/   r   r,   r*   r   r   r-   )r   r'   r$   r%   r#   r&   r0   c                 C   s.   t | }t|rJ h |h |ksJ d S r   r3   )filterr    r6   r   r   r	   test_list_builtin_with_filter4   s   
r:   c                  C   r"   )N>   r   r   r   qt5qt6r   r   r   )r   list_gui_frameworksr   )
frameworksr   r   r	   test_list_gui_frameworksF   r8   r?   zbackend, is_valid))r   T)QtAggT)zmodule://anythingT)zmade-up-nameFc                 C   r   r   )r   is_valid_backend)backendis_validr   r   r	   test_is_valid_backendO   s   rD   zbackend, normalized))r   zmatplotlib.backends.backend_agg)r@   z!matplotlib.backends.backend_qtagg)zmodule://AnythingAnythingc                 C   r   r   )r   _backend_module_name)rB   
normalizedr   r   r	   test_backend_normalizationY   s   rH   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)pytestwarnsmplMatplotlibDeprecationWarningrcsetupinteractive_bknon_interactive_bkall_backendsrI   r   r   r	   "test_deprecated_rcsetup_attributesb   s   


"rS   c                  C   s"   t d t } d| v sJ d S )Nmatplotlib_inlineinlinerK   importorskipr   list_allr5   r   r   r	   test_entry_points_inlinel   s   
rY   c                  C   s.   t d t } d| v sJ d| v sJ d S )NipymplwidgetrV   r5   r   r   r	   test_entry_points_ipymplr   s   
r\   c                 C   <   t t tdg W d    d S 1 sw   Y  d S )N)r   module1rK   raisesRuntimeErrorr    _validate_and_store_entry_pointsr
   r   r   r	   %test_entry_point_name_shadows_builtiny   
   "rd   c                 C   s>   t t tddg W d    d S 1 sw   Y  d S )N)	some_namer^   )rf   module2r_   rc   r   r   r	   test_entry_point_name_duplicate   s
   "rh   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)rf   zsome.module   rf   zmodule://some.module)r   r   _name_to_modulerb   )r
   nr   r   r	   test_entry_point_identical   s   
rl   c                 C   r]   )N)zmodule://backend.somethingr^   r_   rc   r   r   r	   test_entry_point_name_is_module   re   rm   rB   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   _loaded_entry_pointsresolve_backendrX   )r
   rB   checkr   r   r	   %test_load_entry_points_only_if_needed   s   


rq   z.gui_or_backend, expected_backend, expected_gui))r   r   N)r   r   r   )TkCairor,   r   c                 C   s*   t | \}}||ksJ ||ksJ d S r   )r   resolve_gui_or_backend)gui_or_backendexpected_backendexpected_guirB   guir   r   r	   test_resolve_gui_or_backend   s   	rx   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 namerI   zno-such-name)rK   r`   ra   r   rs   rI   r   r   r	   #test_resolve_gui_or_backend_invalid   s   "ry   )"collections.abcr   typingr   rK   
matplotlibrM   matplotlib.backendsr   r   fixturer
   boolr   markparametrizer!   r7   INTERACTIVENON_INTERACTIVEr:   r?   rD   rH   rS   rY   r\   rd   rh   rl   rm   rq   rx   ry   r   r   r   r	   <module>   s`    


	



	
