
    ;ea                         d dl mZmZmZmZmZmZ 	 d dl mZmZm	Z	 n# e
$ r dZ	Y nw xY wd dlZd dlZd dlZd dlmZ d dlmZ  e            j        dk    rId  e            j                            d          D             \  ZZZeeefd	k     r ej        d
          g dad ZdddddZej        dk    red=  G d dej                  Zedk    r ej                     dS dS )    )	setlocaleLC_ALLLC_CTYPE
LC_NUMERIC
localeconvError)	RADIXCHARTHOUSEPnl_langinfoN)uname)supportDarwinc                 ,    g | ]}t          |          S  )int).0parts     (/usr/lib/python3.11/test/test__locale.py
<listcomp>r      s    FFF4SYYFFF    .)   r   r   z%locale support broken for OS X < 10.4)Kes_UYfr_FRfi_FIes_COpt_PTit_ITet_EEes_PYno_NOnl_NLlv_LVel_GRbe_BYfr_BEro_ROru_UAru_RUes_VEca_ESse_NOes_ECid_IDka_GEes_CL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_DEsr_YUbr_FRnl_BEsv_FIpl_PLfr_CAfo_FObs_BAfr_LUkl_GLfa_IRde_BEsv_SEit_CHuk_UAeu_ESvi_VNaf_ZAnb_NO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                     t           j        dk    rt          j        t          j                  } 	 g }t
          D ]}	 t          j        t          j        |           n# t          $ r Y /w xY wt          j                    }	 t                       |	                    |           k# t          $ r2}t          d|d|dt          |          d|           Y d }~d }~ww xY w|at          j        t          j        |            n$# t          j        t          j        |            w xY wdt           j        v rd fdt
          D             ad S d S )	Nsunos5zWARNING: Skip locale z (encoding z): [z] z
MSC v.1200c                     |                      d          }t          |          dk    ot          |d                   dk     S )Nr      	   )splitlen)locas     r   acceptzsetUpModule.<locals>.accept<   s7    		#A1vv{6s1R5zzQ77r   c                 *    g | ]} |          |S r   r   )r   rg   ri   s     r   r   zsetUpModule.<locals>.<listcomp>?   s&    MMMSMSMMMr   )sysplatformlocaler   r   candidate_localesr   getencodingr   append	Exceptionprinttypeversion)
old_localelocalesrg   encodingerrri   s        @r   setUpModulery      s    |x%fm44
	8G( ( ($V]C8888   H!-//(LLL
 NN3''''	 ! ; ; ;E33$s))))SS: ; ; ; ; ; ; ; ;;
 !(V]J7777FV]J7777 s{""	8 	8 	8 NMMM,=MMM	 #"sX   D AD 
A+(D *A++D B&D &
C"0(CD C""D !D()r   ,)rz   r   )rz    )u   ٫u   ٬)r^   rG   r   r]   win32r]   c                   $   e Zd Zd Zd ZdZd Z ej        e	d           ej
        ej        pej        d          d                         Z ej
        ej        pej        d          d             Z ej        e	d          d	             Zd
 ZdS )_LocaleTestsc                 8    t          t                    | _        d S Nr   r   	oldlocaleselfs    r   setUpz_LocaleTests.setUpS   s    "6**r   c                 :    t          t          | j                   d S r   r   r   s    r   tearDownz_LocaleTests.tearDownV   s    &$.)))))r   z)%s != %s (%s for %s; set to %s, using %s)c                     	 	 t          t                    }n# t          $ r d}Y nw xY wt                              |d          |dk             }|r)|r)|                     ||| j        ||||||fz             dS d S d S )N<not able to determine>)r{   r{   thousands_sepT)r   r   r   known_numericsgetassertEquallc_numeric_err_msg)r   	calc_type
calc_value	data_typeused_locale
set_localeknown_values          r   numeric_testerz_LocaleTests.numeric_tester^   s    C	3":..JJ 	3 	3 	32JJJ	3$(($,. ..7?.JL 	: 	Z $ 7$.$-y*$/;1 !12 2 2
 4	 	 	 	s    ''znl_langinfo is not availablez(musl libc issue on Emscripten, bpo-46390c                 F   d}t           D ]}}	 t          t          |           t          t          |           n# t          $ r Y :w xY wt
          dft          dffD ],\  }}|                     dt          |          ||          rd}-~|s| 	                    d           d S d S )NFdecimal_pointr   r   Tno suitable locales)
rn   r   r   r   r   r	   r
   r   r   skipTest)r   testedrg   lilcs        r   test_lc_numeric_nl_langinfoz(_LocaleTests.test_lc_numeric_nl_langinfon   s     $ 		" 		"C*c***(C((((   %7$o68 " "B&&}k"oor3OO "!F"  	1MM/00000	1 	1   *8
AAc                 .   d}t           D ]q}	 t          t          |           t          t          |           n# t          $ r Y :w xY wt                      }dD ]"}|                     d||         ||          rd}#r|s|                     d           d S d S )NF)r   r   r   Tr   )rn   r   r   r   r   r   r   r   )r   r   rg   
formattingr   s        r   test_lc_numeric_localeconvz'_LocaleTests.test_lc_numeric_localeconv   s     $ 
	" 
	"C*c***(C((((   #J) " "&&|Z^RMM "!F"  	1MM/00000	1 	1r   c                    d}t           D ]}	 t          t          |           t          t          |           n# t          $ r Y :w xY wt
          dft          dffD ]u\  }}t          |          }t                      |         }	 t          t                    }n# t          $ r d}Y nw xY w| 	                    |||d|d|d|d           d	}v|s| 
                    d
           d S d S )NFr   r   r   z (nl_langinfo) != z (localeconv) (set to z, using )Tr   )rn   r   r   r   r   r	   r
   r   r   r   r   )r   r   rg   r   r   nl_radixcharli_radixcharr   s           r   test_lc_numeric_basicz"_LocaleTests.test_lc_numeric_basic   sR    $ 	 	C*c***(C((((   %7$o68  B*2)||B/;!*:!6!6JJ ; ; ;!:JJJ;  | 1=lll03ZZZ!AB B B
   	1MM/00000	1 	1s!   *8
AABB'&B'c           	         d}t           D ].}	 t          t          |           t          t          |           n# t          $ r Y ;w xY w|dk    rt                      d         dk    r^|                     t          t          d          dz            dd|z             |                     t          t          d          dz            dd	|z             t                      d         d
k    rH| 
                    t          t          t                      d                             ddg                     d}0|s|                     d           d S d S )NFrW   r   z' z3.14d   i:  z using eval('3.14') failed for %sz!using float('3.14') failed for %sr   123Tr   )rn   r   r   r   r   r   r   r   evalfloatassertRaises
ValueErrorjoinr   )r   r   rg   s      r   test_float_parsingz_LocaleTests.test_float_parsing   sx    $ 	 	C*c***(C((((    g~~*,,"?4"G"GSf!344c BS HJ J JSv!455s Cc IK K K||O,33!!*e",,,"?"D"Dc4["Q"QS S SFF 	1MM/00000	1 	1s   *9
AAN)__name__
__module____qualname__r   r   r   r   unittest
skipUnlessr   skipIfr   is_emscriptenis_wasir   r   r   r   r   r   r   r~   r~   Q   s       + + +* * * E    X&DEEX_02 1 1	  FE
1  X_02 1 1	 1" X&DEE1 1 FE141 1 1 1 1r   r~   __main__) _localer   r   r   r   r   r   r	   r
   r   ImportErrorrm   rk   r   rl   r   testr   systemreleasere   majminmicSkipTestrn   ry   r   TestCaser~   r   mainr   r   r   <module>r      s   P P P P P P P P P P P P P P P P99999999999   KKK  



             577>XFF5577?+@+@+E+EFFFMCcS#""h GHHH
# 
# 
#  N  N  NL  !  <7wz1 z1 z1 z1 z18$ z1 z1 z1z zHMOOOOO s   
 ''