"""A minimal subset of the locale module used at interpreter startup(imported by the _io module), in order to reduce startup time.Don't import directly from third-party code; use the `locale` module instead!"""importsysimport_localeifsys.platform.startswith("win"):defgetpreferredencoding(do_setlocale=True):return_locale._getdefaultlocale()[1]else:try:_locale.CODESET
defgetpreferredencoding(do_setlocale=True):# This path for legacy systems needs the more complex# getdefaultlocale() function, import the full locale module.importlocalereturnlocale.getpreferredencoding(do_setlocale)else:defgetpreferredencoding(do_setlocale=True):assertnotdo_setlocaleresult=_locale.nl_langinfo(_locale.CODESET)ifnotresultandsys.platform=='darwin':# nl_langinfo can return an empty string# when the setting has an invalid value.# Default to UTF-8 in that case because# UTF-8 is the default charset on OSX and# returning nothing will crash the# interpreter.result='UTF-8'returnresult