a
    j=ic                     @   sr  d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlZ	e pDg Z
eejZejje
 ddZejjee
dkddZejfeeddd	Zejd
ejejejfdd Zejd
ejejejfdd Zejd
ejejejfdd Zejdg dejd
ejejejfdd Zdd Zdd Zedd Zeejdg ddd Z dd Z!dS )    N)can_set_localeget_locales
set_localezNeed locales)reason   z)Need multiple locales for meaningful test)lc_varreturnc                 C   s
   t | S N)locale	setlocaler    r   v/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/config/test_localization.py_get_current_locale   s    r   r   c                 C   s0   t | }t|| dsJ t | }||ks,J d S )Nr   r   r   r   before_localeafter_localer   r   r   test_can_set_current_locale   s    r   c                 C   s0   t | }td| dsJ t | }||ks,J d S )N r   r   r   r   r   r   test_can_set_locale_valid_set(   s    r   c                 C   s0   t | }td| drJ t | }||ks,J d S )Nznon-existent_localer   r   r   r   r   r   test_can_set_locale_invalid_set1   s    r   zlang,enc))it_CHzUTF-8)en_USascii)zh_CNGB2312)it_ITz
ISO-8859-1c                 C   s0   t |}t| |ftj t |}||ks,J d S r	   )r   r   r
   LC_ALL)langencr   r   r   r   r   r   test_can_set_locale_no_leak:   s    r!   c                 C   sN   dd }|   *}|td| tdr,J W d    n1 s@0    Y  d S )Nc                   S   s
   t  d S r	   )
ValueErrorr   r   r   r   mock_get_localeQ   s    z8test_can_set_locale_invalid_get.<locals>.mock_get_locale	getlocaler   )contextsetattrr
   r   )Zmonkeypatchr#   mr   r   r   test_can_set_locale_invalid_getL   s    
r(   c                   C   s   t tdksJ d S )Nr   )len_all_localesr   r   r   r   test_get_locales_at_least_oneY   s    r+   c                  C   s*   t d } tt| d d ddks&J d S )Nr      )prefix)r*   r)   r   )Zfirst_localer   r   r   test_get_locales_prefix^   s    r.   c           	   	   C   s   t  }t|j}| |f}t|sd}tjtj|d8 t	| W d    n1 sV0    Y  W d    q1 st0    Y  nVt	|>}|
d\}}t|j}||f}||ksJ W d    n1 s0    Y  t  }||ksJ d S )Nzunsupported locale setting)match.)r   codecslookupnamer   pytestZraisesr
   Errorr   split)	r   r    r   Z
new_localemsgZnormalized_localeZnew_langZnew_encr   r   r   r   test_set_localed   s    
>
*r8   c                  C   sH   t jd} | r| dd nd}ttjjj	j
t|j
ksDJ d S )Nr   r0   zutf-8)osenvirongetr6   r1   r2   pdoptionsdisplayencodingr3   )Zsystem_localeZsystem_encodingr   r   r   test_encoding_detected   s    
rA   )"r1   r
   r:   r4   Zpandas._config.localizationr   r   r   Zpandasr=   r*   r   r   Z_current_localemarkZskipifZ
pytestmarkr)   Z_skip_if_only_one_localeintstrr   ZparametrizeLC_CTYPELC_TIMEr   r   r   r!   r(   r+   r.   r8   rA   r   r   r   r   <module>   sF   



	
	