o
    jm                     @   s   d dl mZ d dlmZ d dlmZ d dlZd dlZd dl	Z	d dl
Zd dl
mZmZ d dlmZmZ dZdZeeiZed1d	d
Zdd Zdd Zdd Z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!j"d!d"d#gd$d%gd&d'd( Z#d)d* Z$d+d, Z%d-d. Z&d/d0 Z'dS )2    )contextmanager)Path)TemporaryDirectoryN)pyplotstyle)USER_LIBRARY_PATHSSTYLE_EXTENSIONz
image.cmapZpinkc                 c   s    |st }|  dt }zAt (}t||jddd | D dd t| t	
  dV  W d   n1 s;w   Y  W t	
  dS W t	
  dS t	
  w )zAContext manager to create a style sheet in a temporary directory..
c                 s   s"    | ]\}}| d | V  qdS )z: N ).0kvr   r   \/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_style.py	<genexpr>   s     ztemp_style.<locals>.<genexpr>utf-8encodingN)DUMMY_SETTINGSr   r   r   
write_textjoinitemsr   appendr   Zreload_library)
style_namesettings	temp_fileZtmpdirr   r   r   
temp_style   s"   



r   c                 C   s^   ddi}d}t || W d    n1 sw   Y  t| jdkr+|| jd  v s-J d S )NZfoobarbasename   r   )r   lenrecords
getMessage)ZcaplogZSETTINGSr   r   r   r   )test_invalid_rc_warning_includes_filename'   s   r#   c                   C   s>   t dt dtjv sJ W d    d S 1 sw   Y  d S )NZ_test_)r   r   r   	availabler   r   r   r   test_available1   s   "r%   c                	   C   s   dt jt< tdt/ td t jt tksJ W d    n1 s$w   Y  W d    d S W d    d S 1 s<w   Y  d S NgraytestmplrcParamsPARAMr   r   r   contextVALUEr   r   r   r   test_use6   s   
"r/   c              	   C   s   | d }|j ddd tdt@ dtjdkrdnd	 |   }t| t	j
d
 dks1J W d    n1 s;w   Y  W d    d S W d    d S 1 sSw   Y  d S )Nfilezaxes.facecolor: adeader   r   r(   zfile:win32z/// zaxes.facecolorz#adeade)r   r   r   sysplatformresolveas_posixr   r-   r*   r+   )tmp_pathpathurlr   r   r   test_use_url=   s   
"r:   c                 C   s   dt jt< | dt  }|jt dt dd t| t jt tks'J W d    n1 s1w   Y  t jt dks?J d S )Nr'   ztext.z : r   r   )r*   r+   r,   r   r   r.   r   r-   )r7   r8   r   r   r   test_single_pathH   s   
r;   c                	   C   s   dt jt< tdt& td t jt tksJ W d    n1 s$w   Y  W d    n1 s3w   Y  t jt dksAJ d S r&   r)   r   r   r   r   test_contextQ   s   
r<   c                  C   sh   d} d}| t jt< tt|i t jt |ksJ W d    n1 s$w   Y  t jt | ks2J d S )Nr'   blue)r*   r+   r,   r   r-   original_valueother_valuer   r   r   test_context_with_dictZ   s   
rA   c               	   C   s   d} d}| t jt< tdt* tdt|ig t jt |ks"J W d    n1 s,w   Y  W d    n1 s;w   Y  t jt | ksIJ d S Nr'   r=   r(   )r*   r+   r,   r   r   r   r-   r>   r   r   r   'test_context_with_dict_after_namedstylec      
rC   c               	   C   s   d} d}| t jt< tdt* tt|idg t jt tks"J W d    n1 s,w   Y  W d    n1 s;w   Y  t jt | ksIJ d S rB   r)   r>   r   r   r   (test_context_with_dict_before_namedstylen   rD   rE   c               	   C   s   d} d}d}||i}| t jt< | t j|< tdt1 td|g t jt tks,J t j| |ks5J W d    n1 s?w   Y  W d    n1 sNw   Y  t jt | ks\J t j| | ksfJ d S )Nr'   ztext.usetexTr(   r)   )r?   Zother_paramr@   dr   r   r   .test_context_with_union_of_dict_and_namedstyley   s   
rG   c               
   C   s   d} d}t t|iK tjt |ksJ t t| dd i}tt | W d    n1 s1w   Y  W d    n1 s@w   Y  tjt |ksNJ W d    d S 1 sYw   Y  d S )Nr'   r=   Zbadparam)r   r-   r,   r*   r+   pytestZraisesKeyError)r?   r@   xr   r   r   test_context_with_badparam   s   "rK   equiv_styles)mpl20default)mpl15ZclassicrM   rO   )Zidsc              	   C   s   g }| D ]}t | |tj  W d    n1 sw   Y  q|d }t| dd  |dd  D ]
\}}||ks?J q5d S )Nr   r   )r   r-   r   r*   r+   copyzip)rL   Zrc_dictsZstyZrc_basenmrcr   r   r   
test_alias   s   "rT   c                   C   sL   t jd d u s	J t  t jd dksJ tj  t jd dks$J d S Nzpath.sketch)r   d      )r*   r+   pltxkcdnpZtestingZbreak_cyclesr   r   r   r   test_xkcd_no_cm   s
   
r[   c                   C   sb   t jd d u s	J t  t jd dksJ W d    n1 s!w   Y  t jd d u s/J d S rU   )r*   r+   rX   rY   r   r   r   r   test_xkcd_cm   s
   
r\   c                   C   s   t jjjh t jjksJ d S N)r*   r   coreZSTYLE_BLACKLISTZrcsetupZ_validatorsr   r   r   r   test_up_to_date_blacklist   s   r_   c                 C   s   | |  ||  | d }|  |d jddd |djddd tjd tjd	 d
ks4J tjd tjd	 dksCJ tjd tjd	 dksRJ d S )NZmpl_test_style_pkgztest_style.mplstylezlines.linewidth: 42r   r   z	.mplstylezlines.linewidth: 84zmpl_test_style_pkg.test_stylezlines.linewidth*   zmpl_test_style_pkg.mplstyleT   z./mpl_test_style_pkg.mplstyle)	Zsyspath_prependchdirmkdirr   with_suffixr*   r   Zuser+   )r7   ZmonkeypatchZpkg_pathr   r   r   test_style_from_module   s    


re   r]   )(
contextlibr   pathlibr   tempfiler   r3   numpyrZ   rH   Z
matplotlibr*   r   rX   r   Zmatplotlib.style.corer   r   r,   r.   r   r   r#   r%   r/   r:   r;   r<   rA   rC   rE   rG   rK   markZparametrizerT   r[   r\   r_   re   r   r   r   r   <module>   sH    
			
