python/cpython

Commits on Nov 11, 2020

Commits on Nov 10, 2020

  1. bpo-42140: Improve asyncio.wait function (GH-22938)

    # Improve asyncio.wait function
    
    The original code creates the futures set two times.
    We can create this set before, avoiding the second creation.
    
    This new behaviour [breaks the aiokafka library](aio-libs/aiokafka#672), because it gives an iterator to that function, so the second iteration become empty.
    
    Automerge-Triggered-By: GH:1st1
  2. bpo-42260: Fix _PyConfig_Read() if compute_path_config=0 (GH-23220)

    Fix _PyConfig_Read() if compute_path_config=0: use values set by
    Py_SetPath(), Py_SetPythonHome() and Py_SetProgramName(). Add
    compute_path_config parameter to _PyConfig_InitPathConfig().
    
    The following functions now return NULL if called before
    Py_Initialize():
    
    * Py_GetExecPrefix()
    * Py_GetPath()
    * Py_GetPrefix()
    * Py_GetProgramFullPath()
    * Py_GetProgramName()
    * Py_GetPythonHome()
    
    These functions no longer automatically computes the Python Path
    Configuration. Moreover, Py_SetPath() no longer computes
    program_full_path.
  3. bpo-42260: Compute the path config in the main init (GH-23211)

    The path configuration is now computed in the "main" initialization.
    The core initialization no longer computes it.
    
    * Add _PyConfig_Read() function to read the configuration without
      computing the path configuration.
    * pyinit_core() no longer computes the path configuration: it is now
      computed by init_interp_main().
    * The path configuration output members of PyConfig are now optional:
    
      * executable
      * base_executable
      * prefix
      * base_prefix
      * exec_prefix
      * base_exec_prefix
    
    * _PySys_UpdateConfig() now skips NULL strings in PyConfig.
    * _testembed: Rename test_set_config() to test_init_set_config() for
      consistency with other tests.

Commits on Nov 9, 2020

Commits on Nov 8, 2020

  1. bpo-41100: Support macOS 11 and Apple Silicon (GH-22855)

    Co-authored-by:  Lawrence D’Anna <lawrence_danna@apple.com>
    
    * Add support for macOS 11 and Apple Silicon (aka arm64)
       
      As a side effect of this work use the system copy of libffi on macOS, and remove the vendored copy
    
    * Support building on recent versions of macOS while deploying to older versions
    
      This allows building installers on macOS 11 while still supporting macOS 10.9.

Commits on Nov 7, 2020

  1. bpo-42282: Fold constants inside named expressions (GH-23190)

    * The AST optimiser wasn't descending into named expressions, so
      any constant subexpressions weren't being folded at compile time
    * Remove "default:" clauses inside the AST optimiser code to reduce the
      risk of similar bugs passing unnoticed in future compiler changes

Commits on Nov 6, 2020

Commits on Nov 5, 2020

  1. bpo-42260: PyConfig_Read() only parses argv once (GH-23168)

    The PyConfig_Read() function now only parses PyConfig.argv arguments
    once: PyConfig.parse_argv is set to 2 after arguments are parsed.
    Since Python arguments are strippped from PyConfig.argv, parsing
    arguments twice would parse the application options as Python
    options.
    
    * Rework the PyConfig documentation.
    * Fix _testinternalcapi.set_config() error handling.
    * SetConfigTests no longer needs parse_argv=0 when restoring the old
      configuration.
  2. bpo-42260: Add _PyConfig_FromDict() (GH-23167)

    * Rename config_as_dict() to _PyConfig_AsDict().
    * Add 'module_search_paths_set' to _PyConfig_AsDict().
    * Add _PyConfig_FromDict().
    * Add get_config() and set_config() to _testinternalcapi.
    * Add config_check_consistency().
  3. bpo-41877 Check for asert, aseert, assrt in mocks (GH-23165)

    Currently, a Mock object which is not unsafe will raise an
    AttributeError if an attribute with the prefix assert or assret is
    accessed on it. This protects against misspellings of real assert
    method calls, which lead to tests passing silently even if the tested
    code does not satisfy the intended assertion.
    
    Recently a check was done in a large code base (Google) and three
    more frequent ways of misspelling assert were found causing harm:
    asert, aseert, assrt. These are now added to the existing check.