N7=BjpSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJ r SSK J r SS/r Sr SrSr/S Qr\R"S :XaS r S rO\R"R%S 5(a\ R'S 5 O_\R"R%S5(aSr SrO:\R"S:XaS rO'\R"S:XaSrO\R"S:XaS r S rS r\"\R"S;=(a \"\S5=(a \"\S55rSrSr\"S\5r"SS\5rSrSrSqSqSq Sr!"SS\RD5r#"S S!\#5r$\ RJ\RL"\RN"S"5S#5"S$S%\#555r(S&r)\*S':Xa\RV"5 gg)(N) namedtuple)support)run_python_until_endCz invalid.asciiasciiT)zC.UTF-8zC.utf8UTF-8androidutf-8linuxPOSIXaixz iso8859-1darwincygwinFvxworks)rr nl_langinfoCODESETcSn[(aUS- nURU5n[SUSS9up4URS:H$)Nz=import locale; print(locale.setlocale(locale.LC_CTYPE, '{}'))z>; import sys; sys.exit(not locale.nl_langinfo(locale.CODESET))-cPYTHONCOERCECLOCALEr)_check_nl_langinfo_CODESETformatrrc) locale_namecmd_fmtcmdresultpy_cmds B/opt/alt/python313/lib64/python3.13/test/test_c_locale_coercion.py_set_locale_in_subprocessr!VsDMG!!SS .. %C)$LNF 99>zBfsencoding stdin_info stdout_info stderr_info lang lc_ctype lc_allEncodingDetailscZ\rSrSrSR /SQ5r\S5r\S5rSr g)r#d;)zimport sys, osz"print(sys.getfilesystemencoding())z2print(sys.stdin.encoding + ':' + sys.stdin.errors)z4print(sys.stdout.encoding + ':' + sys.stdout.errors)z4print(sys.stderr.encoding + ':' + sys.stderr.errors)z(print(os.environ.get('LANG', 'not set'))z,print(os.environ.get('LC_CTYPE', 'not set'))z*print(os.environ.get('LC_ALL', 'not set'))cTUS-nUcSnURU5/S-nURURS55 URSS5nU(a[n OURSS5n URSS5n XU 4n [ U"U/UQU Q76R 55$) z;Returns expected child process details for a given encodingz:{}surrogateescapebackslashreplaceLANGznot setLC_CTYPELC_ALL)rappendgetCLI_COERCION_TARGETdict_asdict) clscoercion_expected fs_encodingstream_encoding stream_errorsenv_vars_stream stream_info expected_langexpected_lc_ctypeexpected_lc_allenv_infos r get_expected_details$EncodingDetails.get_expected_detailsqs"E)  .M~~m459  7>>*<=> VY7  3  ( Z C ",,x; _DC =k=H=EEGHHr"cx[SSSUR40UD6up#URS:XdURU5 URR S5R 5n[U"U6R55nURR S5R5R 5nXV4$)a:Retrieves fsencoding and standard stream details from a child process Returns (encoding_details, stderr_lines): - encoding_details: EncodingDetails for eager decoding - stderr_lines: result of calling splitlines() on the stderr output The child is run in isolated mode if the current interpreter supports that. z-Xzutf8=0rrr) rCHILD_PROCESS_SCRIPTrfailoutdecode splitlinesr1r2errrstrip)r3r8rr stdout_lineschild_encoding_details stderr_liness r get_child_details!EncodingDetails.get_child_detailss. (D#":":  yyA~ KK zz((1<<> !%c<&8&@&@&B!Czz((188:EEG %33r"N) __name__ __module__ __qualname____firstlineno__joinrB classmethodr?rL__static_attributes__rNr"r r#r#ds@88 % II*44r"zPython runtime initialized with LC_CTYPE=C (a locale with default ASCII encoding), which may cause Unicode compatibility problems. Using C.UTF-8, C.utf8, or UTF-8 (if available) as alternative Unicode-compatible locales is recommended.zPython detected LC_CTYPE=C: LC_CTYPE coerced to {} (set another locale or PYTHONCOERCECLOCALE=0 to disable this locale coercion behavior).c[bg/q[H*n[U5(dM[RU5 M, [(a"[Sq[ R [5q[R(a[S[<35 [S[<35 [S[<35 [S[<35 [S[<35 [S[<35 [S[<35 gg) NrzAVAILABLE_TARGETS = z EXPECTED_C_LOCALE_EQUIVALENTS = z$EXPECTED_C_LOCALE_STREAM_ENCODING = z EXPECTED_C_LOCALE_FS_ENCODING = z$EXPECT_COERCION_IN_DEFAULT_LOCALE = z_C_UTF8_LOCALES = z_check_nl_langinfo_CODESET = )AVAILABLE_TARGETS_C_UTF8_LOCALESr!r.r0CLI_COERCION_WARNING_FMTrCLI_COERCION_WARNINGrverboseprintEXPECTED_C_LOCALE_EQUIVALENTS!EXPECTED_C_LOCALE_STREAM_ENCODINGEXPECTED_C_LOCALE_FS_ENCODING!EXPECT_COERCION_IN_DEFAULT_LOCALEr) target_locales r setUpModulerbs $) $] 3 3  $ $] 3)/27>>?RS $%6$9:; 01N0QRS 45V4YZ[ 01N0QRS 45V4YZ[ "?"567 -.H-KLMr"c\rSrSrSrSrg)_LocaleHandlingTestCasec[RU5nUup[RUUUUU5n URX5 Uc/nURX5 g)a Check the C locale handling for the given process environment Parameters: expected_fs_encoding: expected sys.getfilesystemencoding() result expected_stream_encoding: expected encoding for standard streams expected_warning: stderr output to expect (if any) N)r#rLr? assertEqual) selfr8expected_fs_encodingexpected_stream_encodingexpected_stream_errorsexpected_warningsr4rencoding_detailsrKexpected_detailss r _check_child_encoding_details5_LocaleHandlingTestCase._check_child_encoding_detailssh!228<)/&*??  $ "    )<  $ "  9r"rNN)rOrPrQrRrorUrNr"r rdrds:r"rdc0\rSrSr\S5rSrSrSrg)LocaleConfigurationTestscF[(d[R"S5eg)Nz No C-with-UTF-8 locale available)rWunittestSkipTest)r3s r setUpClass#LocaleConfigurationTests.setUpClasss!! ##$FG G!r"c SUlSnSnSSSSSS.nSH_n[HRnUS:XaUS:XaMURUUS9 UR5nXVU'UR UUUSSSS 9 SSS5 MT Ma g!,(df  Mj=f) Nr rr+r,r-rPYTHONIOENCODINGr+r,r+renv_varconfigured_localeFrkrlr4maxDiffrWsubTestcopyrorhrirj base_var_dictr~ locale_to_setvar_dicts r )test_external_target_locale_configurationBLocaleConfigurationTests.test_external_target_locale_configurations &#* #% "  ,G!2 f$')A\\'4A"C,113H(5W%66x7K7ONRIMIN 7P CC"3,CC )A:: B c SUlSnSnSSSSSS.nSH_n[HRnUS:XaUS:XaMURUUS9 UR5nXVU'UR UUUSSS S 9 SSS5 MT Ma g!,(df  Mj=f) Nr rrrzr|r+r}strictFrrrs r test_with_ioencoding-LocaleConfigurationTests.test_with_ioencodings &#* #% '  ,G!2 f$')A\\'4A"C,113H(5W%66x7K7ONVIMIN 7P CC"3,CCrrN) rOrPrQrRrTrwrrrUrNr"r rrrrs%HH !PF Pr"rrPY_COERCE_C_LOCALEz(C locale coercion disabled at build timecF\rSrSrS SjrSrSrSrSrSr S r S r g) LocaleCoercionTestsi@Nc fSUl[(d[n[nSnU(a[/nSSSSSS.nUR U5 UbX7S'UR SUS9 [(aUnUn OSnSn [R(a U[/:XaSnURUUUSUU 5 SSS5 [HQn SHHn UR U U USS 9 UR5n XU 'URU UUSUU5 SSS5 MJ MS g!,(df  Nj=f!,(df  Mq=f) aCheck the C locale handling for various configurations Parameters: fs_encoding: expected sys.getfilesystemencoding() result stream_encoding: expected encoding for standard streams coerce_c_locale: setting to use for PYTHONCOERCECLOCALE None: don't set the variable at all str: the value set in the child's environment expected_warnings: expected warning lines on stderr extra_vars: additional environment variables to set in subprocess NFrrzrT)default_localerr|)r~nominal_localerr{)rrWr_r^LEGACY_LOCALE_WARNINGupdaterr`r is_androidrZror]r) rhr5r6coerce_c_localerlr4 extra_varsr_expected_warnings_coercion_expectedrr~rs r _check_c_locale_coercion,LocaleCoercionTests._check_c_locale_coercionFsf"   7K?O %  %:$;!#% "   Z(  &3B/ 0\\.=?00%6"%6"%)"%*" ""&+?*@@%)"  . .}/:/>/3/A/A  C?.;M/\\'1>6E35"7 -113H(5W%66x7B7F7;7H7H J770;/??277sA D+D! D! D0 c&URSSSS9 g)Nr rrrhs r test_PYTHONCOERCECLOCALE_not_set4LocaleCoercionTests.test_PYTHONCOERCECLOCALE_not_sets %%gw%Mr"c8SHnURSSUS9 M g)N)r1truefalser rr)rhsettings r !test_PYTHONCOERCECLOCALE_not_zero5LocaleCoercionTests.test_PYTHONCOERCECLOCALE_not_zeros#2G  ) )'7G ) T2r"c2URSSS[/S9 g)Nr warn)rrl)rrZrs r $test_PYTHONCOERCECLOCALE_set_to_warn8LocaleCoercionTests.test_PYTHONCOERCECLOCALE_set_to_warns# %%gw6<9M8N & Pr"cnUR[[SSS9 UR[[SSSS9 g)N0F)rr4rrr-r4)rr_r^rs r $test_PYTHONCOERCECLOCALE_set_to_zero8LocaleCoercionTests.test_PYTHONCOERCECLOCALE_set_to_zerosE %%&C&G698= & ? %%&C&G69-08= & ?r"c |UR[[SSSS9 UR[[SS[/SS9 g)NrFrr)rr-rlr4)rr_r^rrs r test_LC_ALL_set_to_C(LocaleCoercionTests.test_LC_ALL_set_to_CsN %%&C&G6:-08= & ? %%&C&G6<-09N8O8= & ?r"c[R"[RS5nUR[R[RU5 [R"[RS5nWS:XaUR S5 U[;aUR SU-5 Sn[[RSS9n[R"[RSU/[RUS S 9nUR!UR"R%5U5 g![Ra$nUR [ U55 SnANSnAff=f) Nrrz.test requires LC_CTYPE locale different than Czcoerced LC_CTYPE locale: %sz=import locale; print(locale.setlocale(locale.LC_CTYPE, None))rrrT)stdoutenvtext)locale setlocaler, addCleanupErrorskipTeststrTARGET_LOCALESr1osenviron subprocessrunsys executablePIPErgrrH)rhold_loclocecoderrs r #test_PYTHONCOERCECLOCALE_set_to_one7LocaleCoercionTests.test_PYTHONCOERCECLOCALE_set_to_ones""6??D9 ((&//7C """6??B7C #: MMJ K . MM7#= >O2::37nncnndD9$.OO!$"&( **,c2|| " MM#a& ! ! "s%D++E#?EE#r)NT) rOrPrQrRrrrrrrrrUrNr"r rr@s34837 LJ\NU P ? ?3r"rc.[R"5 g)N)r reap_childrenrNr"r tearDownModulers r"__main__),rrrr sysconfigru collectionsrtestrtest.support.script_helperrr]r^r_r`rplatform startswithr.rXboolhasattrrr!_fields_EncodingDetailsr#rrYrWr0rZrbTestCaserdrr cpython_only skipUnlessget_config_varrrrOmainrNr"r rs   ";"%o 6%,! '%)!/<<9(/%$+!\\W%% "((1\\U##(3%$/!\\X$+!\\X).%\\Y(/%$+!1"LL++ FM" FI  O/994&94|J N<:h//:@MP6MP^  Y--.BC?AS31S3AS3l z MMOr"