o
    g_                     @   s  d dl mZ d dlmZ d dl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mZmZ d dlmZmZ dZd	ZeeiZe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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S )/    )OrderedDict)contextmanagerN)Path)TemporaryDirectory)pyplotstyle)USER_LIBRARY_PATHSSTYLE_EXTENSIONz
image.cmappinkc                 c   s    |st }d| tf }z?t &}t||ddd | D  t| t	
  dV  W d   n1 s8w   Y  W t	
  dS W t	
  dS t	
  w )zAContext manager to create a style sheet in a temporary directory.z%s.%s
c                 s   s     | ]\}}d  ||V  qdS )z{}: {}N)format).0kv r   Y/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/matplotlib/tests/test_style.py	<genexpr>   s    ztemp_style.<locals>.<genexpr>N)DUMMY_SETTINGSr	   r   r   
write_textjoinitemsr   appendr   reload_library)
style_namesettings	temp_file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 )Nfoobarbasename   r   )r   lenrecords
getMessage)caplog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 )N_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   
"r4   c              	   C   s   t | d}|d tdt@ dtjdkrdnd |   }t	| t
jd d	ks0J W d    n1 s:w   Y  W d    d S W d    d S 1 sRw   Y  d S )
Nfilezaxes.facecolor: adeader-   zfile:win32z/// zaxes.facecolorz#adeade)r   r   r   r   sysplatformresolveas_posixr   r2   r/   r0   )r   pathurlr   r   r   test_use_url=   s   


"r>   c                 C   s   dt jt< dt }t| |}|t dt  t| t jt tks(J W d    n1 s2w   Y  t jt dks@J d S )Nr,   ztext.z : )	r/   r0   r1   r	   r   r   r3   r   r2   )r   r   r<   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_contextR   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/   r0   r1   r   r2   original_valueother_valuer   r   r   test_context_with_dict[   s   
rE   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,   rA   r-   )r/   r0   r1   r   r   r   r2   rB   r   r   r   'test_context_with_dict_after_namedstyled      
rG   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 rF   r.   rB   r   r   r   (test_context_with_dict_before_namedstyleo   rH   rI   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.   )rC   other_paramrD   dr   r   r   .test_context_with_union_of_dict_and_namedstylez   s   
rL   c               
   C   s   d} d}t t| fdg}tt|iH tjt |ksJ t|g}tt | W d    n1 s6w   Y  W d    n1 sEw   Y  tjt |ksSJ W d    d S 1 s^w   Y  d S )Nr,   rA   )badparamN)	r   r1   r   r2   r/   r0   pytestraisesKeyError)rC   rD   rK   xr   r   r   test_context_with_badparam   s   "rR   equiv_styles)mpl20default)mpl15classicrT   rV   )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   r2   r   r/   r0   copyzip)rS   rc_dictsstyrc_basenmrcr   r   r   
test_alias   s   "r`   c                   C   sJ   t jd d u s	J t  t jd dksJ t  t jd dks#J d S Nzpath.sketch)r!   d      )r/   r0   pltxkcdgccollectr   r   r   r   test_xkcd_no_cm   s
   rh   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 ra   )r/   r0   rd   re   r   r   r   r   test_xkcd_cm   s
   
ri   )N)'collectionsr   
contextlibr   rf   pathlibr   tempfiler   r8   rN   
matplotlibr/   r   rd   r   matplotlib.style.corer   r	   r1   r3   r   r   r'   r*   r4   r>   r?   r@   rE   rG   rI   rL   rR   markparametrizer`   rh   ri   r   r   r   r   <module>   sF    

		
