o
    h                     @   s  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m	Z	 d dl
Ze 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ded	e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ejejejejejje	ddd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_locale)ISMUSLzNeed locales)reason   z)Need multiple locales for meaningful testlc_varreturnc                 C   s
   t | S N)locale	setlocaler    r   y/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/pandas/tests/config/test_localization.py_get_current_locale   s   
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!      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*   r   r   z$MUSL allows setting invalid LC_TIME.)marksc                 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_set3   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_leakH   s   r$   c                 C   sP   dd }|   }|td| tdrJ W d    d S 1 s!w   Y  d S )Nc                   S   s   t  r
   )
ValueErrorr   r   r   r   mock_get_locale_   s   z8test_can_set_locale_invalid_get.<locals>.mock_get_locale	getlocaler   )contextsetattrr   r   )monkeypatchr&   mr   r   r   test_can_set_locale_invalid_getZ   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_oneg   s   r/   c                  C   s*   t d } tt| d d ddksJ d S )Nr      )prefix)r.   r-   r   )first_localer   r   r   test_get_locales_prefixl   s   "r3   c           	   	   C   s   t  }t|j}| |f}t|s@d}tjtj|d t	| W d    n1 s+w   Y  W d    n1 s:w   Y  n+t	|}|
d\}}t|j}||f}||ks\J W d    n1 sfw   Y  t  }||kstJ d S )Nzunsupported locale setting)match.)r   codecslookupnamer   pytestraisesr   Errorr   split)	r"   r#   r   
new_localemsgnormalized_localenew_langnew_encr   r   r   r   test_set_localer   s(   

rB   c                  C   sH   t jd} | r| dd nd}ttjjj	j
t|j
ks"J d S )Nr!   r5   zutf-8)osenvirongetr<   r6   r7   pdoptionsdisplayencodingr8   )system_localesystem_encodingr   r   r   test_encoding_detected   s
   
rM   )%r6   r   rD   r9   pandas._config.localizationr   r   r   pandas.compatr   pandasrG   r.   r   r!   _current_localemarkskipif
pytestmarkr-   _skip_if_only_one_localeintstrr   parametrizeLC_CTYPELC_TIMEr   r   paramr   r$   r,   r/   r3   rB   rM   r   r   r   r   <module>   s`    


	
	