o
    GXhS                     @   s  d dl mZmZmZmZmZmZ zd dl mZmZm	Z	 W n e
y'   dZ	Y nw d dlZd dlZd dlZd dlmZ e jdkr[dd e jdD \ZZZeeefd	k r[ed
g dadd ZdddddZejdkrred= G dd dejZedkre  dS dS )    )	setlocaleLC_ALLLC_CTYPE
LC_NUMERIC
localeconvError)	RADIXCHARTHOUSEPnl_langinfoN)unameZDarwinc                 C   s   g | ]}t |qS  )int).0partr   r   ;/opt/python-3.10.19/usr/lib/python3.10/test/test__locale.py
<listcomp>   s    r   .)   r   r   z%locale support broken for OS X < 10.4)KZes_UYfr_FRfi_FIes_COpt_PTit_ITet_EEes_PYZno_NOnl_NLlv_LVel_GRbe_BYfr_BEro_ROZru_UAru_RUes_VEca_ESse_NOes_ECid_IDka_GEes_CLZwa_BEhu_HUlt_LTsl_SIhr_HRes_ARes_ESoc_FRgl_ESbg_BGis_ISmk_MKde_ATpt_BRda_DKnn_NOcs_CZde_LUes_BOsq_ALsk_SKfr_CHde_DEZsr_YUbr_FRnl_BEsv_FIpl_PLfr_CAfo_FObs_BAfr_LUkl_GLfa_IRZde_BEsv_SEit_CHuk_UAeu_ESvi_VNaf_ZAnb_NOZen_DKtg_TJps_AFen_USzfr_FR.ISO8859-1zfr_FR.UTF-8zfr_FR.ISO8859-15@eurozru_RU.KOI8-Rzko_KR.eucKRc                     s   t jdkrgttj} zSg }tD ]C}z	ttj| W n	 ty$   Y qw td}zt  W n t	yM } zt
d||t||f  W Y d }~qd }~ww || q|aW ttj|  nttj|  w dt jv r{dd   fddtD ad S d S )	Nsunos5Fz.WARNING: Skip locale %s (encoding %s): [%s] %sz
MSC v.1200c                 S   s(   |  d}t|dkot|d dk S )Nr      	   )splitlen)locar   r   r   accept:   s   
zsetUpModule.<locals>.acceptc                    s   g | ]} |r|qS r   r   )r   rY   r[   r   r   r   =   s    zsetUpModule.<locals>.<listcomp>)sysplatformlocaler   r   candidate_localesr   getpreferredencodingr   	Exceptionprinttypeappendversion)Z
old_localeZlocalesrY   encodingerrr   r\   r   setUpModule   s4   


 
ri   )r   ,)rj   r   )rj    )u   ٫u   ٬)rR   r>   r   rQ   win32rQ   c                   @   s`   e Zd Zdd Zdd ZdZdd Zee	dd	d
 Z
dd Zee	ddd Zdd ZdS )_LocaleTestsc                 C   s   t t| _d S Nr   r   Z	oldlocaleselfr   r   r   setUpQ   s   z_LocaleTests.setUpc                 C   s   t t| j d S rn   ro   rp   r   r   r   tearDownT   s   z_LocaleTests.tearDownz)%s != %s (%s for %s; set to %s, using %s)c                 C   sn   	 zt t}W n ty   d}Y nw t|d|dk }|r3|r5| ||| j||||||f  dS d S d S )N<not able to determine>)rk   rk   thousands_sepT)r   r   r   known_numericsgetassertEquallc_numeric_err_msg)rq   Z	calc_typeZ
calc_valueZ	data_typeZused_locale
set_localeZknown_valuer   r   r   numeric_tester\   s*   z_LocaleTests.numeric_testerznl_langinfo is not availablec              	   C   s   d}t D ]1}ztt| tt| W n	 ty   Y qw tdftdffD ]\}}| dt|||r4d}q$q|s?| 	d d S d S )NFdecimal_pointru   r
   Tno suitable locales)
r`   r   r   r   r   r   r	   r{   r
   skipTest)rq   testedrY   lilcr   r   r   test_lc_numeric_nl_langinfol   s$   
z(_LocaleTests.test_lc_numeric_nl_langinfoc              	   C   sx   d}t D ],}ztt| tt| W n	 ty   Y qw t }dD ]}| d|| ||r/d}q!q|s:| d d S d S )NF)r|   ru   r   Tr}   )r`   r   r   r   r   r   r{   r~   )rq   r   rY   Z
formattingr   r   r   r   test_lc_numeric_localeconv}   s"   
z'_LocaleTests.test_lc_numeric_localeconvc                 C   s   d}t D ]O}ztt| tt| W n	 ty   Y qw tdftdffD ].\}}t|}t | }ztt}W n tyB   d}Y nw | 	||d||||f  d}q$q|s]| 
d d S d S )NFr|   ru   rt   z9%s (nl_langinfo) != %s (localeconv) (set to %s, using %s)Tr}   )r`   r   r   r   r   r   r	   r
   r   rx   r~   )rq   r   rY   r   r   Znl_radixcharZli_radixcharrz   r   r   r   test_lc_numeric_basic   s<   

z"_LocaleTests.test_lc_numeric_basicc              	   C   s   d}t D ]Z}ztt| tt| W n	 ty   Y qw |dkr(t d dkr(q| ttdd dd|  | tt	dd dd	|  t d d
kr\| 
tt	t d ddg d}q|sh| d d S d S )NFrL   r|   z' z3.14d   i:  z using eval('3.14') failed for %sz!using float('3.14') failed for %sr   1Z23Tr}   )r`   r   r   r   r   r   rx   r   evalfloatZassertRaises
ValueErrorjoinr~   )rq   r   rY   r   r   r   test_float_parsing   s0   
z_LocaleTests.test_float_parsingN)__name__
__module____qualname__rr   rs   ry   r{   unittestZ
skipUnlessr
   r   r   r   r   r   r   r   r   rm   O   s    



rm   __main__)_localer   r   r   r   r   r   r   r	   r
   ImportErrorr_   r]   r   r^   r   systemreleaserW   ZmajminZmicZSkipTestr`   ri   rv   ZTestCaserm   r   mainr   r   r   r   <module>   s6     
&
	u