o w[e01 @sF"dZddlZddlZddlZddlZddlZddlmZddl Z gdZ ddZ ddZ zdd l TWn%eyWd Zd Zd ZdZd ZdZdZdZeZddZdddZYnwdevr_e Zdevrfe ZeZiZe eddZddZ!dddZ"ddZ#e$dZ%dd d!Z&dd"d#Z'dd$d%Z(dd&d'Z)dd)d*Z*d+d,Zd-d.Z+dd/d0Z,e-fd1d2Z.d3d4Z/d5d6Z0eZ1d7d8Z2d9d:Z3d;d<Z4d=d>Z5d?d@Z6ddBdCZ7efdDdEZ8ddFdZefdGdHZ9zddIl m:Z:WneydJdKZ:Ynwze;Wne<yddLdMZ=YnwddNdMZ=idOdPdQdPdRdSdTdUdVdUdWdXdYdZd[d\d]d^d_d`dadSdbdcdddedfdgdhdSdidSdjdSidkdldmdndodpdqdrdsdgdtdudvdcdwdxdydzd{ded|d}d~dddddddUdddddXddddddd\d^d`d Z>e?e>@D]\ZAZBeACddZAe>DeAeBqiddddddddddddddddddddddddddddddddddidddddddddddddddddddd“ddēddƓddȓddʓdd̓ddΓddГiddғddԓddddדddדddړddܓddޓddޓddޓddddddddddddddiddddddddddddddddddddddddddddddd dd d id d dd dddddQdPddddPddPddddddPddPddddddd d!d"d#id$d%d&dd'd(d)dd*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d9d;d9d<d=d>d?d@dAidBdAdCd9dDd9dEd9dFdGdHdGdIdGdJdGdKdLdMdNdOdPdQdRdSdLdTdUdVdWdXdYdZdLid[d\d]d^d_d`dadbdcdddedfdgdfdhdidjdkdldmdndkdodpdRddqdrdsdtdudvdwdxidydzd{d|d}d~ddddddddddddddddddddddddddddiddddddddddddddddddPddddddddddddddddidddddddddddddddddÐdēdŐdƓdǐdȓdɐdʓdːd̓d͐dΓdϐdГdѐdғdӐdԓidՐd֓dאdؓdِdړdېdidܐdݓdސdݓdߐdddddddddddddddddddddidddddddddddddddddddddddddddddddd d d id d d dddddddddLddLddRddLddddddddddkddd d!d"d!id#d$d%d&d'd(d)d(d*d(d+d,d-d,d.d,d/d0d1d2d3d2d4d7d5d7d6d7d7d8d9d:d;d<id=d<d>d<d?d@dAdBdCdDdEdFdGdHdIdJdKdJdLdMdNdOdPdJdQdJdRdHdSdHdTddUdidVddWddXddYddZd[d\d]d^d[d_d[d`dadbdadcdaddd(ded(dfdgdhdidjdidkdiidldmdndmdodidpdidqdidrdidsdidtdudvdudwdudxdydzdud{d|d}d~ddddddiddddddddddddddddddddddddddddddddddiddddddddddddddddddddddddddddddddddidddddddddd“dÐdēdŐdƓdǐdƓdȐdɓdʐd˓d̐d͓dΐd͓dϐdГdѐdГdҐdӓdԐdՓd֐dדidؐdדdِdړdېdړdܐdݓdސdݓdߐddddddddddddddddddddd^ddidd`dd^ddddddddddddddddddddddddddddd did d d d d ddddddddddddddddddddd d!d"d#d$d%d"d&d'id(d'd)d*d+d*d,d*d-d.d/d0d1dPd2dPd3d4d5d4d6d7d8d.d9d0d:d.d;d<d=d>d?d@idAd@dBd@dCdDdEdDdFdGdHd@dIdJdKdLdMdLdNdOdPdQdRdSdTdUdVdUdWdXdYdZd[d\id]d^d_d`dad^dbdcdddedfd7dgdcdhd^didjdkdldmdndodndpdqdrdndsdtdudtdvdwidxdydzdwd{dtd|dwd}dwd~dddddddddddddddddddddddiddddddddddcdddddddd^ddcdd^ddddcddddddddiddddddddddddddddddddddddddddddddddidd“dÐdēdŐdƓdǐdƓdȐdɓdʐdɓdːd̓d͐d̓dΐdϓdАdϓdѐd̓dҐdӓdԐdՓd֐dדdؐdٓdڐdۓdܐdݓidސdݓdߐdddddddddddddddddddddddddddddddidddddddddddddddddddddddd d d d d d d dd dd idddddddddddddddddddd d!d d"d#d$d%d&d'd(d+d)d*d+d,d+d-d-d.d/d,d-d-d0d0d1 ZEid2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSidTdUdVdWdXdYdZd[d\d]d^d_d`d_dadbdcdddedfdgdhdidjdkdjdldmdndodpdqddridsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddiddddddddddddddddddddddddddddddddddiddddddddddddddÓdĐdœdƐdǓdȐdɓdʐd˓d̐d͓dΐdϓdАdѓdҐdӓdԐdՓd֐dדidؐdٓdڐdۓdܐdݓdސdߓddddddddddddddddddddddddddiddddddddddddddddd d d d d dddddddddddddidddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<id=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[dXd\dZid]d^d_d`dadbdcdddedfdgdhdidjdkdhdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}id~dddddddddddddddddddddddddddddddddidddddddddddddddddddddddddddddddddddddÐdĐdŜZFdƐdDŽZGzeWn e<yYnwe HdȡeIdkr!eJdʃeJeGeJeJd˃eJe0dSdS(aLocale support module. The module provides low-level access to the C lib's locale APIs and adds high level number formatting APIs as well as a locale aliasing engine to complement these. The aliasing engine includes support for many commonly used locale names and maps them to values suitable for passing to the C lib's setlocale() function. It also includes default encodings for all supported locale names. N)str) getlocalegetdefaultlocalegetpreferredencodingError setlocale resetlocale localeconvstrcollstrxfrmratofatoiformat format_stringcurrency normalizeLC_CTYPE LC_COLLATELC_TIME LC_MONETARY LC_NUMERICLC_ALLCHAR_MAXcCs||k||kS)zZ strcoll(string,string) -> int. Compares two strings according to the locale. )abrr/usr/lib/python3.10/locale.py_strcoll!srcCs|S)z\ strxfrm(string) -> string. Returns a string that behaves for cmp locale-aware. r)srrr_strxfrm'sr)*cCstiddgdddddddddgd dd d d dd dddddddddddddddddiS)zd localeconv() -> dict. Returns numeric and monetary locale-specific parameters. groupingr!currency_symbol n_sign_posn p_cs_precedes n_cs_precedes mon_groupingn_sep_by_space decimal_point. negative_sign positive_signp_sep_by_spaceint_curr_symbol p_sign_posn thousands_sepmon_thousands_sep frac_digitsmon_decimal_pointint_frac_digitsrrrrrr ?sF      r cCs|dvrtddS)zd setlocale(integer,string=None) -> string. Activates/queries locale processing. )Nr*Cz*_locale emulation only supports "C" localer<)r)categoryvaluerrrrWsrr r cCst}tr |t|SN) _localeconv_override_localeconvupdate)drrrr ls ccsNd}|D]}|tkrdS|dkr|durtd |Vq|V|}qdS)Nrzinvalid grouping)r ValueError)r( last_intervalintervalrrr_grouping_intervalszsrGFc Cst}||rdp d}||rdpd}|s|dfS|ddkr.|}|t|d}|}nd}d}g}t|D]!} |rB|dd vrH|}d}n||| d|d| }q8|ra|||||||t|t|d fS) Nr8r7r.r(r r* 0123456789r&)r rstriplenrGappendreversejoin) rmonetaryconvr7r(stripped right_spaces left_spacesgroupsrFrrr_groups2   rVcCsd}|r||dkr|d7}|d8}|r||dks t|d}|r8||dkr8|d8}|d8}|r8||dks(|||dS)NrrIr&)rL)ramountlposrposrrr_strip_paddings rZzG%(?:\((?P.*?)\))?(?P[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]cGs8|r ||f|}n||}|ddvrt|||}|S)NrH eEfFgGdiu _localize)percentr>r(rP additional formattedrrr_formats   racCsd|vr0d}|d}|rt|d|d\|d<}t|rdp d}||}|r.t||}|Sd}|rr(rPr_r{r~rrrrs rTc Cst}||rdp d}|dkrtdtt|d|d|dd}d |d }|rk||r/d p0d }||d kr9dp:d}||d krCdpDd} |rS|| rMdpNd|}n|ra|ddkra|dd}|| rfdpgd|}||d krrdpsd} ||d kr|dp}d} | d krd|d}n,| dkr| |}n#| dkr|| }n| dkr|d | }n| dkr|d | }n| |}|d dd dS) zIFormats val according to the currency settings in the current locale.r;r9r!z9Currency formatting is not possible using the 'C' locale.r1rrTrb<>r5r)rr-r,r/r4rIr*rHNr+r6r2r3()r&r'r#r%)r rDr]absreplace) rssymbolr( internationalrQdigitsrsmbprecedes separatedsign_possignrrrr s:    rcCs td|S)z8Convert float to string, taking the locale into account.z%.12g)ra)rsrrrr8s rcCs:t}|d}|r||d}|d}|r||d}|S)zHParses a string as a normalized number according to the locale settings.r7r*r0r1)r r)stringrQtsddrrr delocalize<s  rcCs t|||S)zBParses a string as locale number according to the locale settings.r\)rr(rPrrrlocalizeL rcCs |t|S)zms_MYi>ms_BNiLml_INi:mt_MTimi_NZizarn_CLiNmr_INi|moh_CAiPmn_MNiPmn_CNiane_NPinb_NOinn_NOioc_FRiHor_INicps_AFi)fa_IRipl_PLipt_BRipt_PTiFpa_INikquz_BOikquz_ECik quz_PEiro_ROirm_CHiru_RUi;$smn_FIi;smj_NOi;smj_SEi;se_NOi;se_SEi; se_FIi; sms_FIi;sma_NOi;sma_SEiOsa_INi sr_SPisr_BAiii[si_LKilns_ZAi2tn_ZAisk_SKi$sl_SIi es_ESi es_MXi i es_GTi es_CRi es_PAi es_DOi es_VEi $es_COi (es_PEi ,es_ARi 0es_ECi 4es_CLi 8es_URi <es_PYi @es_BOi Des_SVi Hes_HNi Les_NIi Pes_PRi Tes_USiAsw_KEisv_SEisv_FIiZsyr_SYi(tg_TJi_tmz_DZiIta_INiDtt_RUiJte_INith_THiQbo_BTiQbo_CNitr_TRiBtk_TMiug_CNi"uk_UAi.wen_DEi ur_PKi ur_INiCuz_UZiCi*vi_VNiRcy_GBiwo_SNi4xh_ZAsah_RUii_CNyo_NGzu_ZA)iixiji5cCsi}|fdd}||d=tdtdt\}}td|p dtd|p'dttd td|D] \}}t|d t|\}}td |pLdtd |pSdtq8ttd tdt|D] \}}t|d t|\}}td |pdtd |pdtqkzttdWntdtdtdYdSttdtd|D] \}}t|d t|\}}td |pdtd |pdtqdS)z Test function. cSs0tD]\}}|dddkr|||<qdS)Nr#LC_)globalsitems) categorieskvrrr_init_categoriess z'_print_locale.._init_categoriesrz4Locale defaults as determined by getdefaultlocale():zH------------------------------------------------------------------------z Language: z (undefined)z Encoding: zLocale settings on startup:z...z Language: z Encoding: z,Locale settings after calling resetlocale():r*zNOTE:z9setlocale(LC_ALL, "") does not support the default localez&given in the OS environment variables.z4Locale settings after calling setlocale(LC_ALL, ""):N)rrrrrrr)rrlangencnamer=rrr _print_localesX        r LC_MESSAGES__main__zLocale aliasing:zNumber formatting:r?)F)FF)TFF)r)T)K__doc__rrencodings.aliasesrermbuiltinsrr functools__all__rrrrrrrrrrrrrDrr rrr r r@rAwrapsrGrVrZcompilerirar]rrrrrfloatr r rrrrrrrrrrrCODESET NameErrorrrsortedrrrr setdefaultrrrrM__name__rrrrrsL     /      % /   S"  5     #      !"#$%&'6 |      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG `      "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345789:;<=>?@ABCDEFGHIJKLMNOP  V: