1. 04 Sep, 2018 2 commits
    • Victor Stinner's avatar
      bpo-34530: Fix distutils find_executable() (GH-9049) · 39487196
      Victor Stinner authored
      distutils.spawn.find_executable() now falls back on os.defpath if the
      PATH environment variable is not set.
      39487196
    • Pablo Galindo's avatar
      bpo-33613, test_semaphore_tracker_sigint: fix race condition (#7850) · ec74d187
      Pablo Galindo authored
      Fail `test_semaphore_tracker_sigint` if no warnings are expected and one is received.
      
      Fix race condition when the child receives SIGINT before it can register signal handlers for it.
      
      The race condition occurs when the parent calls
      `_semaphore_tracker.ensure_running()` (which in turn spawns the
      semaphore_tracker using `_posixsubprocess.fork_exec`), the child
      registers the signal handlers and the parent tries to kill the child.
      What seem to happen is that in some slow systems, the parent sends the
      signal to kill the child before the child protects against the signal.
      ec74d187
  2. 03 Sep, 2018 6 commits
  3. 02 Sep, 2018 2 commits
  4. 01 Sep, 2018 3 commits
  5. 31 Aug, 2018 6 commits
  6. 30 Aug, 2018 2 commits
  7. 29 Aug, 2018 12 commits
    • Victor Stinner's avatar
      Fix TestPosixSpawn.test_close_file() (GH-8992) · 0382406f
      Victor Stinner authored
      Modify TestPosixSpawn to run Python using -I and -S options.
      
      Disable site module to avoid side effects. For example, on Fedora 28,
      if the HOME environment variable is not set, site._getuserbase()
      calls pwd.getpwuid() which opens /var/lib/sss/mc/passwd, but then
      leaves the file open which makes test_close_file() to fail.
      0382406f
    • Victor Stinner's avatar
      bpo-34523: Use _PyCoreConfig instead of globals (GH-9005) · fbca9085
      Victor Stinner authored
      Use the core configuration of the interpreter, rather
      than using global configuration variables. For example, replace
      Py_QuietFlag with core_config->quiet.
      fbca9085
    • Victor Stinner's avatar
      bpo-34523: Py_FileSystemDefaultEncoding NULL by default (GH-9003) · de427556
      Victor Stinner authored
      * Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
        default value is now NULL: initfsencoding() set them
        during Python initialization.
      * Document how Python chooses the filesystem encoding and error
        handler.
      * Add an assertion to _PyCoreConfig_Read().
      de427556
    • Victor Stinner's avatar
      bpo-34485: Emit C locale coercion warning later (GH-9002) · cf215041
      Victor Stinner authored
      PYTHONCOERCELOCALE=warn warning is now emitted later and written into
      sys.stderr, rather than being written into the C stderr stream.
      cf215041
    • Victor Stinner's avatar
      bpo-34523: Support surrogatepass in locale codecs (GH-8995) · 3d4226a8
      Victor Stinner authored
      Add support for the "surrogatepass" error handler in
      PyUnicode_DecodeFSDefault() and PyUnicode_EncodeFSDefault()
      for the UTF-8 encoding.
      
      Changes:
      
      * _Py_DecodeUTF8Ex() and _Py_EncodeUTF8Ex() now support the
        surrogatepass error handler (_Py_ERROR_SURROGATEPASS).
      * _Py_DecodeLocaleEx() and _Py_EncodeLocaleEx() now use
        the _Py_error_handler enum instead of "int surrogateescape" to pass
        the error handler. These functions now return -3 if the error
        handler is unknown.
      * Add unit tests on _Py_DecodeLocaleEx() and _Py_EncodeLocaleEx()
        in test_codecs.
      * Rename get_error_handler() to _Py_GetErrorHandler() and expose it
        as a private function.
      * _freeze_importlib doesn't need config.filesystem_errors="strict"
        workaround anymore.
      3d4226a8
    • Victor Stinner's avatar
      bpo-34523: Py_DecodeLocale() use UTF-8 on Windows (GH-8998) · c5989cd8
      Victor Stinner authored
      Py_DecodeLocale() and Py_EncodeLocale() now use the UTF-8 encoding on
      Windows if Py_LegacyWindowsFSEncodingFlag is zero.
      
      pymain_read_conf() now sets Py_LegacyWindowsFSEncodingFlag in its
      loop, but restore its value at exit.
      c5989cd8
    • Victor Stinner's avatar
      bpo-34523: Fix config_init_fs_encoding() (GH-8991) · 70fead25
      Victor Stinner authored
      Call config_init_fs_encoding() if filesystem_errors is not NULL but
      filesystem_encoding is NULL.
      70fead25
    • Victor Stinner's avatar
      bpo-34523: Add _PyCoreConfig.filesystem_encoding (GH-8963) · b2457efc
      Victor Stinner authored
      _PyCoreConfig_Read() is now responsible to choose the filesystem
      encoding and error handler. Using Py_Main(), the encoding is now
      chosen even before calling Py_Initialize().
      
      _PyCoreConfig.filesystem_encoding is now the reference, instead of
      Py_FileSystemDefaultEncoding, for the Python filesystem encoding.
      
      Changes:
      
      * Add filesystem_encoding and filesystem_errors to _PyCoreConfig
      * _PyCoreConfig_Read() now reads the locale encoding for the file
        system encoding.
      * PyUnicode_EncodeFSDefault() and PyUnicode_DecodeFSDefaultAndSize()
        now use the interpreter configuration rather than
        Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors
        global configuration variables.
      * Add _Py_SetFileSystemEncoding() and _Py_ClearFileSystemEncoding()
        private functions to only modify Py_FileSystemDefaultEncoding and
        Py_FileSystemDefaultEncodeErrors in coreconfig.c.
      * _Py_CoerceLegacyLocale() now takes an int rather than
        _PyCoreConfig for the warning.
      b2457efc
    • Victor Stinner's avatar
      bpo-34485: Add _PyCoreConfig.stdio_encoding (GH-8881) · dfe0dc74
      Victor Stinner authored
      * Add stdio_encoding and stdio_errors fields to _PyCoreConfig.
      * Add unit tests on stdio_encoding and stdio_errors.
      dfe0dc74
    • Victor Stinner's avatar
      bpo-34485, Windows: LC_CTYPE set to user preference (GH-8988) · 177d921c
      Victor Stinner authored
      On Windows, the LC_CTYPE is now set to the user preferred locale at
      startup: _Py_SetLocaleFromEnv(LC_CTYPE) is now called during the
      Python initialization. Previously, the LC_CTYPE locale was "C" at
      startup, but changed when calling setlocale(LC_CTYPE, "") or
      setlocale(LC_ALL, "").
      
      pymain_read_conf() now also calls _Py_SetLocaleFromEnv(LC_CTYPE) to
      behave as _Py_InitializeCore(). Moreover, it doesn't save/restore the
      LC_ALL anymore.
      
      On Windows, standard streams like sys.stdout now always use
      surrogateescape error handler by default (ignore the locale).
      177d921c
    • Victor Stinner's avatar
      bpo-34485: stdout uses surrogateescape on POSIX locale (GH-8986) · 315877dc
      Victor Stinner authored
      Standard streams like sys.stdout now use the "surrogateescape" error
      handler, instead of "strict", on the POSIX locale (when the C locale is not
      coerced and the UTF-8 Mode is disabled).
      
      Add tests on sys.stdout.errors with LC_ALL=POSIX.
      315877dc
    • Raymond Hettinger's avatar
  8. 28 Aug, 2018 6 commits
    • Victor Stinner's avatar
      bpo-34485: Add _Py_ClearStandardStreamEncoding() (GH-8982) · 124b9eb4
      Victor Stinner authored
      * Move Py_SetStandardStreamEncoding() from pylifecycle.c
        to coreconfig.c
      * Add _Py_ClearStandardStreamEncoding() private function.
      * pymain_free() now calls _Py_ClearStandardStreamEncoding().
      * Add assertions add the end of _PyCoreConfig_Read()
      * _PyCoreConfig_Copy(): rename COPY_STR_ATTR() macro
        to COPY_WSTR_ATTR().
      * Fix get_stdio_errors() indentation.
      124b9eb4
    • Victor Stinner's avatar
      bpo-34485: Fix _Py_InitializeCore() for C locale coercion (GH-8979) · 2c8ddcf4
      Victor Stinner authored
      * _Py_InitializeCore() now sets the LC_CTYPE locale to the user
        preferred locale before checking if the C locale should be coerced
        or not in _PyCoreConfig_Read().
      * Fix pymain_read_conf(): remember if the C locale has been coerced
        when the configuration should be read again if the encoding has
        changed.
      2c8ddcf4
    • Victor Stinner's avatar
      bpo-34485: Enhance init_sys_streams() (GH-8978) · 9e4994d4
      Victor Stinner authored
      Python now gets the locale encoding with C code to initialize the encoding
      of standard streams like sys.stdout. Moreover, the encoding is now
      initialized to the Python codec name to get a normalized encoding name and
      to ensure that the codec is loaded. The change avoids importing
      _bootlocale and _locale modules at startup by default.
      
      When the PYTHONIOENCODING environment variable only contains an encoding,
      the error handler is now is now set explicitly to "strict".
      
      Rename also get_default_standard_stream_error_handler() to
      get_stdio_errors().
      
      Reduce the buffer to format the "cpXXX" string (Windows locale encoding).
      9e4994d4
    • Victor Stinner's avatar
      bpo-34403: On HP-UX, force ASCII for C locale (GH-8969) · d500e530
      Victor Stinner authored
      On HP-UX with C or POSIX locale, sys.getfilesystemencoding() now returns
      "ascii" instead of "roman8" (when the UTF-8 Mode is disabled and the C locale
      is not coerced).
      
      nl_langinfo(CODESET) announces "roman8" whereas it uses the Latin1
      encoding in practice.
      d500e530
    • Victor Stinner's avatar
      bpo-34527: POSIX locale enables the UTF-8 Mode (GH-8972) · 5cb25895
      Victor Stinner authored
      * The UTF-8 Mode is now also enabled by the "POSIX" locale, not only
        by the "C" locale.
      * On FreeBSD, Py_DecodeLocale() and Py_EncodeLocale() now also forces
        the ASCII encoding if the LC_CTYPE locale is "POSIX", not only if
        the LC_CTYPE locale is "C".
      * test_utf8_mode.test_cmd_line() checks also that the command line
        arguments are decoded from UTF-8 when the the UTF-8 Mode is enabled
        with POSIX locale or C locale.
      5cb25895
    • Carl Meyer's avatar
      bpo-21145: Add cached_property decorator in functools (#6982) · d658deac
      Carl Meyer authored
      Robust caching of calculated properties is
      harder than it looks at first glance, so add
      a solid, well-tested implementation to the
      standard library.
      d658deac
  9. 27 Aug, 2018 1 commit