.. bpo: 42967 .. date: 2021-02-14-15-59-16 .. nonce: YApqDS .. release date: 2021-03-01 .. section: Security Fix web cache poisoning vulnerability by defaulting the query args separator to ``&``, and allowing the user to choose a custom separator. .. .. bpo: 43321 .. date: 2021-02-26-13-17-52 .. nonce: TCS3ph .. section: Core and Builtins Fix ``SystemError`` raised when ``PyArg_Parse*()`` is used with ``#`` but without ``PY_SSIZE_T_CLEAN`` defined. .. .. bpo: 36346 .. date: 2021-02-22-19-00-00 .. nonce: uAoni0 .. section: Core and Builtins ``PyArg_Parse*()`` functions now emits ``DeprecationWarning`` when ``u`` or ``Z`` format is used. See :pep:`623` for detail. .. .. bpo: 43277 .. date: 2021-02-20-16-50-22 .. nonce: FXkRXk .. section: Core and Builtins Add a new :c:func:`PySet_CheckExact` function to the C-API to check if an object is an instance of :class:`set` but not an instance of a subtype. Patch by Pablo Galindo. .. .. bpo: 42990 .. date: 2021-02-18-15-12-30 .. nonce: toAqBH .. section: Core and Builtins The :data:`types.FunctionType` constructor now inherits the current builtins if the *globals* dictionary has no ``"__builtins__"`` key, rather than using ``{"None": None}`` as builtins: same behavior as :func:`eval` and :func:`exec` functions. Defining a function with ``def function(...): ...`` in Python is not affected, globals cannot be overridden with this syntax: it also inherits the current builtins. Patch by Victor Stinner. .. .. bpo: 42990 .. date: 2021-02-17-19-02-21 .. nonce: SKXHiI .. section: Core and Builtins Functions have a new ``__builtins__`` attribute which is used to look for builtin symbols when a function is executed, instead of looking into ``__globals__['__builtins__']``. Patch by Mark Shannon and Victor Stinner. .. .. bpo: 43149 .. date: 2021-02-07-03-27-14 .. nonce: 0umPKD .. section: Core and Builtins Improve the error message in the parser for exception groups without parentheses. Patch by Pablo Galindo. .. .. bpo: 43121 .. date: 2021-02-03-22-33-05 .. nonce: jqcViq .. section: Core and Builtins Fixed an incorrect :exc:`SyntaxError` message for missing comma in literals. Patch by Pablo Galindo. .. .. bpo: 42819 .. date: 2021-01-04-23-54-34 .. nonce: 4KO6wU .. section: Core and Builtins :mod:`readline`: Explicitly disable bracketed paste in the interactive interpreter, even if it's set in the inputrc, is enabled by default (eg GNU Readline 8.1), or a user calls ``readline.read_init_file()``. The Python REPL has not implemented bracketed paste support. Also, bracketed mode writes the ``"\x1b[?2004h"`` escape sequence into stdout which causes test failures in applications that don't support it. It can still be explicitly enabled by calling ``readline.parse_and_bind("set enable-bracketed-paste on")``. Patch by Dustin Rodrigues. .. .. bpo: 42808 .. date: 2021-01-02-05-10-58 .. nonce: AOxgxl .. section: Core and Builtins Simple calls to ``type(object)`` are now faster due to the ``vectorcall`` calling convention. Patch by Dennis Sweeney. .. .. bpo: 42217 .. date: 2020-10-31-16-54-00 .. nonce: GdcHe5 .. section: Core and Builtins Make the compiler merges same co_code and co_linetable objects in a module like already did for co_consts. .. .. bpo: 41972 .. date: 2020-10-23-23-17-23 .. nonce: kbAwg4 .. section: Core and Builtins Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` now sometimes use the "Two-Way" string comparison algorithm to avoid quadratic behavior on long strings. .. .. bpo: 42128 .. date: 2020-10-23-08-54-04 .. nonce: SWmVEm .. section: Core and Builtins Implement :pep:`634` (structural pattern matching). Patch by Brandt Bucher. .. .. bpo: 40692 .. date: 2020-05-19-22-10-05 .. nonce: ajEhrR .. section: Core and Builtins In the :class:`concurrent.futures.ProcessPoolExecutor`, validate that :func:`multiprocess.synchronize` is available on a given platform and rely on that check in the :mod:`concurrent.futures` test suite so we can run tests that are unrelated to :class:`ProcessPoolExecutor` on those platforms. .. .. bpo: 38302 .. date: 2019-09-28-12-23-23 .. nonce: hsCNgX .. section: Core and Builtins If :func:`object.__ipow__` returns :data:`NotImplemented`, the operator will correctly fall back to :func:`object.__pow__` and :func:`object.__rpow__` as expected. .. .. bpo: 43316 .. date: 2021-02-25-09-44-36 .. nonce: k9Gyqn .. section: Library The ``python -m gzip`` command line application now properly fails when detecting an unsupported extension. It exits with a non-zero exit code and prints an error message to stderr. .. .. bpo: 43317 .. date: 2021-02-25-09-08-55 .. nonce: qrOOpB .. section: Library Set the chunk size for the ``gzip`` module main function to io.DEFAULT_BUFFER_SIZE. This is slightly faster than the 1024 bytes constant that was used previously. .. .. bpo: 43146 .. date: 2021-02-23-17-20-16 .. nonce: JAFplg .. section: Library Handle None in single-arg versions of :func:`~traceback.print_exception` and :func:`~traceback.format_exception`. .. .. bpo: 43260 .. date: 2021-02-20-12-15-29 .. nonce: 6znAas .. section: Library Fix TextIOWrapper can not flush internal buffer forever after very large text is written. .. .. bpo: 43258 .. date: 2021-02-18-23-30-52 .. nonce: LeU-q8 .. section: Library Prevent needless allocation of :mod:`sqlite3` aggregate function context when no rows match an aggregate query. Patch by Erlend E. Aasland. .. .. bpo: 43251 .. date: 2021-02-18-14-24-42 .. nonce: n6WZDw .. section: Library Improve :mod:`sqlite3` error handling: ``sqlite3_column_name()`` failures now result in :exc:`MemoryError`. Patch by Erlend E. Aasland. .. .. bpo: 40956 .. date: 2021-02-10-23-29-50 .. nonce: LcAbwG .. section: Library Fix segfault in :meth:`sqlite3.Connection.backup` if no argument was provided. The regression was introduced by PR 23838. Patch by Erlend E. Aasland. .. .. bpo: 43172 .. date: 2021-02-10-06-00-53 .. nonce: ZMCJni .. section: Library The readline module now passes its tests when built directly against libedit. Existing irreconcilable API differences remain in :func:`readline.get_begidx` and :func:`readline.get_endidx` behavior based on libreadline vs libedit use. .. .. bpo: 43163 .. date: 2021-02-08-21-13-51 .. nonce: E2MgzH .. section: Library Fix a bug in :mod:`codeop` that was causing it to not ask for more input when multi-line snippets have unclosed parentheses. Patch by Pablo Galindo .. .. bpo: 43162 .. date: 2021-02-08-16-27-00 .. nonce: t-W7h3 .. section: Library deprecate unsupported ability to access enum members as attributes of other enum members .. .. bpo: 43146 .. date: 2021-02-06-21-21-35 .. nonce: MHtb2v .. section: Library Fix recent regression in None argument handling in :mod:`~traceback` module functions. .. .. bpo: 43102 .. date: 2021-02-03-22-55-27 .. nonce: TSlZ6J .. section: Library The namedtuple __new__ method had its __builtins__ set to None instead of an actual dictionary. This created problems for introspection tools. .. .. bpo: 43106 .. date: 2021-02-03-17-06-38 .. nonce: SwcSuU .. section: Library Added :const:`~os.O_EVTONLY`, :const:`~os.O_FSYNC`, :const:`~os.O_SYMLINK` and :const:`~os.O_NOFOLLOW_ANY` for macOS. Patch by Donghee Na. .. .. bpo: 42960 .. date: 2021-01-18-21-07-20 .. nonce: a7Dote .. section: Library Adds :const:`resource.RLIMIT_KQUEUES` constant from FreeBSD to the :mod:`resource` module. .. .. bpo: 42151 .. date: 2020-10-26-18-01-09 .. nonce: et5f7s .. section: Library Make the pure Python implementation of :mod:`xml.etree.ElementTree` behave the same as the C implementation (:mod:`!_elementree`) regarding default attribute values (by not setting ``specified_attributes=1``). .. .. bpo: 29753 .. date: 2020-05-02-01-01-30 .. nonce: n2M-AF .. section: Library In ctypes, now packed bitfields are calculated properly and the first item of packed bitfields is now shrank correctly. .. .. bpo: 27646 .. date: 2021-02-20-00-09-13 .. nonce: HRsmo- .. section: Documentation Clarify that 'yield from ' works with any iterable, not just iterators. .. .. bpo: 36346 .. date: 2020-06-15-10-45-45 .. nonce: H0sS_i .. section: Documentation Update some deprecated unicode APIs which are documented as "will be removed in 4.0" to "3.12". See :pep:`623` for detail. .. .. bpo: 43288 .. date: 2021-02-21-11-11-53 .. nonce: LfTvL- .. section: Tests Fix test_importlib to correctly skip Unicode file tests if the filesystem does not support them. .. .. bpo: 43174 .. date: 2021-02-10-14-11-53 .. nonce: F9zwXQ .. section: Build Windows build now uses ``/utf-8`` compiler option. .. .. bpo: 43103 .. date: 2021-02-02-16-26-44 .. nonce: VWeyP_ .. section: Build Add a new configure ``--without-static-libpython`` option to not build the ``libpythonMAJOR.MINOR.a`` static library and not install the ``python.o`` object file. .. .. bpo: 13501 .. date: 2021-01-10-22-25-23 .. nonce: g4L-6R .. section: Build The configure script can now use *libedit* instead of *readline* with the command line option ``--with-readline=editline``. .. .. bpo: 42603 .. date: 2020-12-08-19-25-20 .. nonce: mXs2dB .. section: Build Make configure script use pkg-config to detect the location of Tcl/Tk headers and libraries, used to build tkinter. On macOS, a Tcl/Tk configuration provided by pkg-config will be preferred over Tcl/Tk frameworks installed in ``/{System/,}Library/Frameworks``. If both exist and the latter is preferred, the appropriate ``--with-tcltk-*`` configuration options need to be explicitly set. .. .. bpo: 39448 .. date: 2020-01-24-12-54-22 .. nonce: k4pv14 .. section: Build Add the "regen-frozen" makefile target that regenerates the code for the frozen ``__hello__`` module. .. .. bpo: 43155 .. date: 2021-02-10-04-16-51 .. nonce: O1tURk .. section: Windows :c:func:`PyCMethod_New` is now present in ``python3.lib``. .. .. bpo: 41837 .. date: 2021-02-28-22-49-46 .. nonce: 9fqyXC .. section: macOS Update macOS installer build to use OpenSSL 1.1.1j. .. .. bpo: 43283 .. date: 2021-02-21-16-30-10 .. nonce: DLBwYn .. section: IDLE Document why printing to IDLE's Shell is often slower than printing to a system terminal and that it can be made faster by pre-formatting a single string before printing. .. .. bpo: 43278 .. date: 2021-02-21-15-30-38 .. nonce: DMPaWH .. section: C API Always put compiler and system information on the first line of the REPL welcome message. .. .. bpo: 43270 .. date: 2021-02-19-14-28-26 .. nonce: UKx4XN .. section: C API Remove the private ``_PyErr_OCCURRED()`` macro: use the public :c:func:`PyErr_Occurred` function instead. .. .. bpo: 35134 .. date: 2021-02-18-18-46-42 .. nonce: dFpEDT .. section: C API Move odictobject.h, parser_interface.h, picklebufobject.h, pydebug.h, and pyfpe.h into the cpython/ directory. They must not be included directly, as they are already included by Python.h: :ref:`Include Files `. .. .. bpo: 35134 .. date: 2021-02-17-18-51-26 .. nonce: YoQdk8 .. section: C API Move pyarena.h, pyctype.h, and pytime.h into the cpython/ directory. They must not be included directly, as they are already included by Python.h: :ref:`Include Files `. .. .. bpo: 40170 .. date: 2021-02-16-22-29-39 .. nonce: ahHmOo .. section: C API :c:func:`PyExceptionClass_Name` is now always declared as a function, in order to hide implementation details. The macro accessed :c:member:`PyTypeObject.tp_name` directly. Patch by Erlend E. Aasland. .. .. bpo: 43239 .. date: 2021-02-16-17-30-16 .. nonce: FQqOGz .. section: C API The :c:func:`PyCFunction_New` function is now exported in the ABI when compiled with ``-fvisibility=hidden``. .. .. bpo: 40170 .. date: 2021-02-15-15-06-43 .. nonce: ZYeSii .. section: C API :c:func:`PyIter_Check` is now always declared as a function, in order to hide implementation details. The macro accessed :c:member:`PyTypeObject.tp_iternext` directly. Patch by Erlend E. Aasland. .. .. bpo: 40170 .. date: 2021-02-15-13-41-14 .. nonce: r2FAtl .. section: C API Convert :c:func:`PyDescr_IsData` macro to a function to hide implementation details: The macro accessed :c:member:`PyTypeObject.tp_descr_set` directly. Patch by Erlend E. Aasland. .. .. bpo: 43181 .. date: 2021-02-11-11-37-14 .. nonce: ydv33S .. section: C API Convert :c:func:`PyObject_TypeCheck` macro to a static inline function. Patch by Erlend E. Aasland.