.. bpo: 40121 .. date: 2020-03-30-23-16-25 .. nonce: p2LIio .. release date: 2020-04-27 .. section: Security Fixes audit events raised on creating a new socket. .. .. bpo: 39073 .. date: 2020-03-15-01-28-36 .. nonce: 6Szd3i .. section: Security Disallow CR or LF in email.headerregistry.Address arguments to guard against header injection attacks. .. .. bpo: 39503 .. date: 2020-01-30-16-15-29 .. nonce: B299Yq .. section: Security :cve:`2020-8492`: The :class:`~urllib.request.AbstractBasicAuthHandler` class of the :mod:`urllib.request` module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. .. .. bpo: 40313 .. date: 2020-04-20-23-58-35 .. nonce: USVRW8 .. section: Core and Builtins Improve the performance of bytes.hex(). .. .. bpo: 40334 .. date: 2020-04-20-14-06-19 .. nonce: CTLGEp .. section: Core and Builtins Switch to a new parser, based on PEG. For more details see PEP 617. To temporarily switch back to the old parser, use ``-X oldparser`` or ``PYTHONOLDPARSER=1``. In Python 3.10 we will remove the old parser completely, including the ``parser`` module (already deprecated) and anything that depends on it. .. .. bpo: 40267 .. date: 2020-04-14-18-54-50 .. nonce: Q2N6Bw .. section: Core and Builtins Fix the tokenizer to display the correct error message, when there is a ``SyntaxError`` on the last input character and no newline follows. It used to be ``unexpected EOF while parsing``, while it should be ``invalid syntax``. .. .. bpo: 39522 .. date: 2020-04-14-18-47-00 .. nonce: uVeIV_ .. section: Core and Builtins Correctly unparse explicit ``u`` prefix for strings when postponed evaluation for annotations activated. Patch by Batuhan Taskaya. .. .. bpo: 40246 .. date: 2020-04-11-17-52-03 .. nonce: vXPze5 .. section: Core and Builtins Report a specialized error message, ``invalid string prefix``, when the tokenizer encounters a string with an invalid prefix. .. .. bpo: 40082 .. date: 2020-04-08-22-33-24 .. nonce: WI3-lu .. section: Core and Builtins Fix the signal handler: it now always uses the main interpreter, rather than trying to get the current Python thread state. .. .. bpo: 37388 .. date: 2020-04-07-15-44-29 .. nonce: stlxBq .. section: Core and Builtins str.encode() and str.decode() no longer check the encoding and errors in development mode or in debug mode during Python finalization. The codecs machinery can no longer work on very late calls to str.encode() and str.decode(). .. .. bpo: 40077 .. date: 2020-04-04-12-43-19 .. nonce: m15TTX .. section: Core and Builtins Fix possible refleaks in :mod:`!_json`, memo of PyScannerObject should be traversed. .. .. bpo: 37207 .. date: 2020-04-02-00-25-19 .. nonce: ZTPmKJ .. section: Core and Builtins Speed up calls to ``dict()`` by using the :pep:`590` ``vectorcall`` calling convention. .. .. bpo: 40141 .. date: 2020-04-01-21-50-37 .. nonce: 8fCRVj .. section: Core and Builtins Add column and line information to ``ast.keyword`` nodes. Patch by Pablo Galindo. .. .. bpo: 1635741 .. date: 2020-04-01-00-08-18 .. nonce: bhGWam .. section: Core and Builtins Port :mod:`resource` to multiphase initialization (:pep:`489`). .. .. bpo: 1635741 .. date: 2020-03-31-22-15-04 .. nonce: 8Ir1a0 .. section: Core and Builtins Port :mod:`math` to multiphase initialization (:pep:`489`). .. .. bpo: 1635741 .. date: 2020-03-31-21-12-27 .. nonce: S2nkF3 .. section: Core and Builtins Port _uuid module to multiphase initialization (:pep:`489`). .. .. bpo: 40077 .. date: 2020-03-27-01-11-08 .. nonce: wT002V .. section: Core and Builtins Convert json module to use :c:func:`PyType_FromSpec`. .. .. bpo: 40067 .. date: 2020-03-25-20-34-01 .. nonce: 0bFda2 .. section: Core and Builtins Improve the error message for multiple star expressions in an assignment. Patch by Furkan Onder .. .. bpo: 1635741 .. date: 2020-03-24-22-26-26 .. nonce: AB38ot .. section: Core and Builtins Port _functools module to multiphase initialization (PEP 489). Patch by Paulo Henrique Silva. .. .. bpo: 1635741 .. date: 2020-03-24-22-17-12 .. nonce: jWaMRV .. section: Core and Builtins Port operator module to multiphase initialization (PEP 489). Patch by Paulo Henrique Silva. .. .. bpo: 20526 .. date: 2020-03-23-18-08-34 .. nonce: NHNZIv .. section: Core and Builtins Fix :c:func:`PyThreadState_Clear()`. ``PyThreadState.frame`` is a borrowed reference, not a strong reference: ``PyThreadState_Clear()`` must not call ``Py_CLEAR(tstate->frame)``. .. .. bpo: 1635741 .. date: 2020-03-22-01-01-41 .. nonce: gR7Igp .. section: Core and Builtins Port time module to multiphase initialization (:pep:`489`). Patch by Paulo Henrique Silva. .. .. bpo: 1635741 .. date: 2020-03-20-13-42-35 .. nonce: bhIu5M .. section: Core and Builtins Port _weakref extension module to multiphase initialization (:pep:`489`). .. .. bpo: 40020 .. date: 2020-03-19-21-53-41 .. nonce: n-26G7 .. section: Core and Builtins Fix a leak and subsequent crash in parsetok.c caused by realloc misuse on a rare codepath. .. .. bpo: 39939 .. date: 2020-03-11-19-17-36 .. nonce: NwCnAM .. section: Core and Builtins Added str.removeprefix and str.removesuffix methods and corresponding bytes, bytearray, and collections.UserString methods to remove affixes from a string if present. See :pep:`616` for a full description. Patch by Dennis Sweeney. .. .. bpo: 39481 .. date: 2020-01-28-17-19-18 .. nonce: rqSeGl .. section: Core and Builtins Implement PEP 585. This supports list[int], tuple[str, ...] etc. .. .. bpo: 32894 .. date: 2019-12-01-21-36-49 .. nonce: 5g_UQr .. section: Core and Builtins Support unparsing of infinity numbers in postponed annotations. Patch by Batuhan Taşkaya. .. .. bpo: 37207 .. date: 2019-06-09-10-54-31 .. nonce: bLjgLS .. section: Core and Builtins Speed up calls to ``list()`` by using the :pep:`590` ``vectorcall`` calling convention. Patch by Mark Shannon. .. .. bpo: 40398 .. date: 2020-04-26-22-25-36 .. nonce: OdXnR3 .. section: Library :func:`typing.get_args` now always returns an empty tuple for special generic aliases. .. .. bpo: 40396 .. date: 2020-04-26-19-07-40 .. nonce: Fn-is1 .. section: Library Functions :func:`typing.get_origin`, :func:`typing.get_args` and :func:`typing.get_type_hints` support now generic aliases like ``list[int]``. .. .. bpo: 38061 .. date: 2020-04-24-01-55-00 .. nonce: XmULB3 .. section: Library Optimize the :mod:`subprocess` module on FreeBSD using ``closefrom()``. A single ``close(fd)`` syscall is cheap, but when ``sysconf(_SC_OPEN_MAX)`` is high, the loop calling ``close(fd)`` on each file descriptor can take several milliseconds. The workaround on FreeBSD to improve performance was to load and mount the fdescfs kernel module, but this is not enabled by default. Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans (kevans) and Kubilay Kocak (koobs): https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274 .. .. bpo: 38061 .. date: 2020-04-24-01-27-08 .. nonce: cdlkMz .. section: Library On FreeBSD, ``os.closerange(fd_low, fd_high)`` now calls ``closefrom(fd_low)`` if *fd_high* is greater than or equal to ``sysconf(_SC_OPEN_MAX)``. Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans (kevans) and Kubilay Kocak (koobs): https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274 .. .. bpo: 40360 .. date: 2020-04-22-20-55-17 .. nonce: Er8sv- .. section: Library The :mod:`!lib2to3` module is pending deprecation due to :pep:`617`. .. .. bpo: 40138 .. date: 2020-04-22-00-05-10 .. nonce: i_oGqa .. section: Library Fix the Windows implementation of :func:`os.waitpid` for exit code larger than ``INT_MAX >> 8``. The exit status is now interpreted as an unsigned number. .. .. bpo: 39942 .. date: 2020-04-20-20-16-02 .. nonce: NvGnTc .. section: Library Set "__main__" as the default module name when "__name__" is missing in :class:`typing.TypeVar`. Patch by Weipeng Hong. .. .. bpo: 40275 .. date: 2020-04-20-19-06-55 .. nonce: 9UcN2g .. section: Library The :mod:`logging` package is now imported lazily in :mod:`unittest` only when the :meth:`~unittest.TestCase.assertLogs` assertion is used. .. .. bpo: 40275 .. date: 2020-04-20-18-50-25 .. nonce: Ofk6J8 .. section: Library The :mod:`asyncio` package is now imported lazily in :mod:`unittest` only when the :class:`~unittest.IsolatedAsyncioTestCase` class is used. .. .. bpo: 40330 .. date: 2020-04-19-17-31-29 .. nonce: DGjoIS .. section: Library In :meth:`ShareableList.__setitem__`, check the size of a new string item after encoding it to utf-8, not before. .. .. bpo: 40148 .. date: 2020-04-19-14-16-43 .. nonce: pDZR6V .. section: Library Added :meth:`pathlib.Path.with_stem()` to create a new Path with the stem replaced. .. .. bpo: 40325 .. date: 2020-04-18-19-40-00 .. nonce: KWSvix .. section: Library Deprecated support for set objects in random.sample(). .. .. bpo: 40257 .. date: 2020-04-18-10-52-15 .. nonce: lv4WTq .. section: Library Improved help for the :mod:`typing` module. Docstrings are now shown for all special forms and special generic aliases (like ``Union`` and ``List``). Using ``help()`` with generic alias like ``List[int]`` will show the help for the correspondent concrete type (``list`` in this case). .. .. bpo: 40257 .. date: 2020-04-15-19-34-11 .. nonce: ux8FUr .. section: Library :func:`inspect.getdoc` no longer returns docstring inherited from the type of the object or from parent class if it is a class if it is not defined in the object itself. In :mod:`pydoc` the documentation string is now shown not only for class, function, method etc, but for any object that has its own ``__doc__`` attribute. .. .. bpo: 40287 .. date: 2020-04-15-17-21-48 .. nonce: -mkEJH .. section: Library Fixed ``SpooledTemporaryFile.seek()`` to return the position. .. .. bpo: 40290 .. date: 2020-04-15-16-43-48 .. nonce: eqCMGJ .. section: Library Added zscore() to statistics.NormalDist(). .. .. bpo: 40282 .. date: 2020-04-15-10-23-52 .. nonce: rIYJmu .. section: Library Allow ``random.getrandbits(0)`` to succeed and to return 0. .. .. bpo: 40286 .. date: 2020-04-15-00-39-25 .. nonce: ai80FA .. section: Library Add :func:`random.randbytes` function and :meth:`random.Random.randbytes` method to generate random bytes. .. .. bpo: 40277 .. date: 2020-04-14-21-53-18 .. nonce: NknSaf .. section: Library :func:`collections.namedtuple` now provides a human-readable repr for its field accessors. .. .. bpo: 40270 .. date: 2020-04-14-16-18-49 .. nonce: XVJzeG .. section: Library The included copy of sqlite3 on Windows is now compiled with the json extension. This allows the use of functions such as ``json_object``. .. .. bpo: 29255 .. date: 2020-04-14-11-31-07 .. nonce: 4EcyIN .. section: Library Wait in ``KqueueSelector.select`` when no fds are registered .. .. bpo: 40260 .. date: 2020-04-12-21-18-56 .. nonce: F6VWaE .. section: Library Ensure :mod:`modulefinder` uses :func:`io.open_code` and respects coding comments. .. .. bpo: 40234 .. date: 2020-04-10-16-13-47 .. nonce: tar4d_ .. section: Library Allow again to spawn daemon threads in subinterpreters (revert change which denied them). .. .. bpo: 39207 .. date: 2020-04-10-01-24-58 .. nonce: 2dE5Ox .. section: Library Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned on demand, only when there are no available idle workers to reuse. This optimizes startup overhead and reduces the amount of lost CPU time to idle workers. Patch by Kyle Stanley. .. .. bpo: 40091 .. date: 2020-04-07-23-26-25 .. nonce: 5M9AW5 .. section: Library Fix a hang at fork in the logging module: the new private _at_fork_reinit() method is now used to reinitialize locks at fork in the child process. .. .. bpo: 40149 .. date: 2020-04-07-18-06-38 .. nonce: mMU2iu .. section: Library Implement traverse and clear slots in _abc._abc_data type. .. .. bpo: 40208 .. date: 2020-04-06-20-09-33 .. nonce: 3rO_q7 .. section: Library Remove deprecated :meth:`!symtable.SymbolTable.has_exec`. .. .. bpo: 40196 .. date: 2020-04-06-11-05-13 .. nonce: Jqowse .. section: Library Fix a bug in the :mod:`symtable` module that was causing incorrectly report global variables as local. Patch by Pablo Galindo. .. .. bpo: 40190 .. date: 2020-04-05-02-58-17 .. nonce: HF3OWo .. section: Library Add support for ``_SC_AIX_REALMEM`` to :func:`posix.sysconf`. .. .. bpo: 40182 .. date: 2020-04-04-23-44-09 .. nonce: Bf_kFN .. section: Library Removed the ``_field_types`` attribute of the :class:`typing.NamedTuple` class. .. .. bpo: 36517 .. date: 2020-04-04-17-49-39 .. nonce: Ilj1IJ .. section: Library Multiple inheritance with :class:`typing.NamedTuple` now raises an error instead of silently ignoring other types. .. .. bpo: 40126 .. date: 2020-04-04-00-47-40 .. nonce: Y-bTNP .. section: Library Fixed reverting multiple patches in unittest.mock. Patcher's ``__exit__()`` is now never called if its ``__enter__()`` is failed. Returning true from ``__exit__()`` silences now the exception. .. .. bpo: 40094 .. date: 2020-04-02-01-13-28 .. nonce: AeZ34K .. section: Library CGIHTTPRequestHandler of http.server now logs the CGI script exit code, rather than the CGI script exit status of os.waitpid(). For example, if the script is killed by signal 11, it now logs: "CGI script exit code -11." .. .. bpo: 40108 .. date: 2020-03-31-01-11-20 .. nonce: EGDVQ_ .. section: Library Improve the error message when triying to import a module using :mod:`runpy` and incorrectly using the ".py" extension at the end of the module name. Patch by Pablo Galindo. .. .. bpo: 40094 .. date: 2020-03-28-18-25-49 .. nonce: v-wQIU .. section: Library Add :func:`os.waitstatus_to_exitcode` function: convert a wait status to an exit code. .. .. bpo: 40089 .. date: 2020-03-27-17-22-34 .. nonce: -lFsD0 .. section: Library Fix threading._after_fork(): if fork was not called by a thread spawned by threading.Thread, threading._after_fork() now creates a _MainThread instance for _main_thread, instead of a _DummyThread instance. .. .. bpo: 40089 .. date: 2020-03-27-16-54-29 .. nonce: VTq_8s .. section: Library Add a private ``_at_fork_reinit()`` method to :class:`!_thread.Lock`, :class:`!_thread.RLock`, :class:`threading.RLock` and :class:`threading.Condition` classes: reinitialize the lock at fork in the child process, reset the lock to the unlocked state. Rename also the private ``_reset_internal_locks()`` method of :class:`threading.Event` to ``_at_fork_reinit()``. .. .. bpo: 25780 .. date: 2020-03-27-08-57-46 .. nonce: kIjVge .. section: Library Expose :const:`~socket.CAN_RAW_JOIN_FILTERS` in the :mod:`socket` module. .. .. bpo: 39503 .. date: 2020-03-25-16-02-16 .. nonce: YmMbYn .. section: Library :class:`~urllib.request.AbstractBasicAuthHandler` of :mod:`urllib.request` now parses all WWW-Authenticate HTTP headers and accepts multiple challenges per header: use the realm of the first Basic challenge. .. .. bpo: 39812 .. date: 2020-03-25-00-35-48 .. nonce: rIKnms .. section: Library Removed daemon threads from :mod:`concurrent.futures` by adding an internal ``threading._register_atexit()``, which calls registered functions prior to joining all non-daemon threads. This allows for compatibility with subinterpreters, which don't support daemon threads. .. .. bpo: 40050 .. date: 2020-03-24-16-17-20 .. nonce: 6GrOlz .. section: Library Fix ``importlib._bootstrap_external``: avoid creating a new ``winreg`` builtin module if it's already available in :data:`sys.modules`, and remove redundant imports. .. .. bpo: 40014 .. date: 2020-03-23-17-52-00 .. nonce: Ya70VG .. section: Library Fix ``os.getgrouplist()``: if ``getgrouplist()`` function fails because the group list is too small, retry with a larger group list. On failure, the glibc implementation of ``getgrouplist()`` sets ``ngroups`` to the total number of groups. For other implementations, double the group list size. .. .. bpo: 40017 .. date: 2020-03-21-00-46-18 .. nonce: HFpHZS .. section: Library Add :const:`time.CLOCK_TAI` constant if the operating system support it. .. .. bpo: 40016 .. date: 2020-03-19-19-40-27 .. nonce: JWtxqJ .. section: Library In re docstring, clarify the relationship between inline and argument compile flags. .. .. bpo: 39953 .. date: 2020-03-19-16-33-03 .. nonce: yy5lC_ .. section: Library Update internal table of OpenSSL error codes in the ``ssl`` module. .. .. bpo: 36144 .. date: 2020-03-18-14-51-41 .. nonce: lQm_RK .. section: Library Added :pep:`584` operators to :class:`weakref.WeakValueDictionary`. .. .. bpo: 36144 .. date: 2020-03-18-14-02-58 .. nonce: ooyn6Z .. section: Library Added :pep:`584` operators to :class:`weakref.WeakKeyDictionary`. .. .. bpo: 38891 .. date: 2020-03-15-08-06-05 .. nonce: 56Yokh .. section: Library Fix linear runtime behaviour of the ``__getitem__`` and ``__setitem__`` methods in :class:`multiprocessing.shared_memory.ShareableList`. This avoids quadratic performance when iterating a ``ShareableList``. Patch by Thomas Krennwallner. .. .. bpo: 39682 .. date: 2020-03-08-11-00-01 .. nonce: AxXZNz .. section: Library Remove undocumented support for *closing* a ``pathlib.Path`` object via its context manager. The context manager magic methods remain, but they are now a no-op, making ``Path`` objects immutable. .. .. bpo: 36144 .. date: 2020-03-07-11-26-08 .. nonce: FG9jqy .. section: Library Added :pep:`584` operators (``|`` and ``|=``) to :class:`collections.ChainMap`. .. .. bpo: 39011 .. date: 2020-02-12-01-48-51 .. nonce: hGve_t .. section: Library Normalization of line endings in ElementTree attributes was removed, as line endings which were replaced by entity numbers should be preserved in original form. .. .. bpo: 38410 .. date: 2019-10-09-08-14-25 .. nonce: _YyoMV .. section: Library Properly handle :func:`sys.audit` failures in :func:`sys.set_asyncgen_hooks`. .. .. bpo: 36541 .. date: 2019-06-18-19-38-27 .. nonce: XI8mi1 .. section: Library lib2to3 now recognizes named assignment expressions (the walrus operator, ``:=``) .. .. bpo: 35967 .. date: 2019-04-14-14-11-07 .. nonce: KUMT9E .. section: Library In platform, delay the invocation of 'uname -p' until the processor attribute is requested. .. .. bpo: 35113 .. date: 2018-11-03-16-18-20 .. nonce: vwvWKG .. section: Library :meth:`inspect.getsource` now returns correct source code for inner class with same name as module level class. Decorators are also returned as part of source of the class. Patch by Karthikeyan Singaravelan. .. .. bpo: 33262 .. date: 2018-04-17-13-23-29 .. nonce: vHC7YQ .. section: Library Deprecate passing None as an argument for :func:`shlex.split()`'s ``s`` parameter. Patch by Zackery Spytz. .. .. bpo: 31758 .. date: 2017-10-14-21-02-40 .. nonce: 563ZZb .. section: Library Prevent crashes when using an uninitialized ``_elementtree.XMLParser`` object. Patch by Oren Milman. .. .. bpo: 27635 .. date: 2020-04-01-00-27-03 .. nonce: VwxUty .. section: Documentation The pickle documentation incorrectly claimed that ``__new__`` isn't called by default when unpickling. .. .. bpo: 39879 .. date: 2020-03-16-18-12-02 .. nonce: CnQ7Cv .. section: Documentation Updated :ref:`datamodel` docs to include :func:`dict` insertion order preservation. Patch by Furkan Onder and Samy Lahfa. .. .. bpo: 38387 .. date: 2019-10-06-23-44-15 .. nonce: fZoq0S .. section: Documentation Document :c:macro:`PyDoc_STRVAR` macro in the C-API reference. .. .. bpo: 13743 .. date: 2019-09-25-23-20-55 .. nonce: 5ToLDy .. section: Documentation Some methods within xml.dom.minidom.Element class are now better documented. .. .. bpo: 31904 .. date: 2020-04-09-16-29-18 .. nonce: ej348T .. section: Tests Set expected default encoding in test_c_locale_coercion.py for VxWorks RTOS. .. .. bpo: 40162 .. date: 2020-04-03-02-40-16 .. nonce: v3pQW_ .. section: Tests Update Travis CI configuration to OpenSSL 1.1.1f. .. .. bpo: 40146 .. date: 2020-04-02-02-14-37 .. nonce: J-Yo9G .. section: Tests Update OpenSSL to 1.1.1f in Azure Pipelines. .. .. bpo: 40094 .. date: 2020-03-31-18-57-52 .. nonce: m3fTJe .. section: Tests Add :func:`test.support.wait_process` function. .. .. bpo: 40003 .. date: 2020-03-31-16-07-15 .. nonce: SOruLY .. section: Tests ``test.bisect_cmd`` now copies Python command line options like ``-O`` or ``-W``. Moreover, emit a warning if ``test.bisect_cmd`` is used with ``-w``/``--verbose2`` option. .. .. bpo: 39380 .. date: 2020-03-22-20-00-04 .. nonce: ZXlRQU .. section: Tests Add the encoding in :class:`ftplib.FTP` and :class:`ftplib.FTP_TLS` to the constructor as keyword-only and change the default from ``latin-1`` to ``utf-8`` to follow :rfc:`2640`. .. .. bpo: 39793 .. date: 2020-02-29-12-58-17 .. nonce: Og2SUN .. section: Tests Use the same domain when testing ``make_msgid``. Patch by Batuhan Taskaya. .. .. bpo: 1812 .. date: 2019-11-25-21-46-47 .. nonce: sAbTbY .. section: Tests Fix newline handling in doctest.testfile when loading from a package whose loader has a get_data method. Patch by Peter Donis. .. .. bpo: 38360 .. date: 2020-04-22-02-33-54 .. nonce: 74C68u .. section: Build Support single-argument form of macOS -isysroot flag. .. .. bpo: 40158 .. date: 2020-04-03-17-54-33 .. nonce: MWUTs4 .. section: Build Fix CPython MSBuild Properties in NuGet Package (build/native/python.props) .. .. bpo: 38527 .. date: 2020-03-28-10-43-09 .. nonce: fqCRgD .. section: Build Fix configure check on Solaris for "float word ordering": sometimes, the correct "grep" command was not being used. Patch by Arnon Yaari. .. .. bpo: 40164 .. date: 2020-04-04-13-13-44 .. nonce: SPrSn5 .. section: Windows Updates Windows to OpenSSL 1.1.1f .. .. bpo: 8901 .. date: 2020-01-24-09-15-41 .. nonce: hVnhGO .. section: Windows Ignore the Windows registry when the ``-E`` option is used. .. .. bpo: 38329 .. date: 2020-04-22-03-39-22 .. nonce: H0a8JV .. section: macOS python.org macOS installers now update the Current version symlink of /Library/Frameworks/Python.framework/Versions for 3.9 installs. Previously, Current was only updated for Python 2.x installs. This should make it easier to embed Python 3 into other macOS applications. .. .. bpo: 40164 .. date: 2020-04-21-19-46-35 .. nonce: 6HA6IC .. section: macOS Update macOS installer builds to use OpenSSL 1.1.1g. .. .. bpo: 38439 .. date: 2019-12-05-14-20-53 .. nonce: j_L2PI .. section: IDLE Add a 256×256 pixel IDLE icon to support more modern environments. Created by Andrew Clover. Delete the unused macOS idle.icns icon file. .. .. bpo: 38689 .. date: 2019-11-14-12-59-19 .. nonce: Lgfxva .. section: IDLE IDLE will no longer freeze when inspect.signature fails when fetching a calltip. .. .. bpo: 40385 .. date: 2020-04-24-21-08-19 .. nonce: nWIQdq .. section: Tools/Demos Removed the checkpyc.py tool. Please see compileall without force mode as a potential alternative. .. .. bpo: 40179 .. date: 2020-04-04-19-35-22 .. nonce: u9FH10 .. section: Tools/Demos Fixed translation of ``#elif`` in Argument Clinic. .. .. bpo: 40094 .. date: 2020-04-02-01-22-21 .. nonce: 1XQQF6 .. section: Tools/Demos Fix ``which.py`` script exit code: it now uses :func:`os.waitstatus_to_exitcode` to convert :func:`os.system` exit status into an exit code. .. .. bpo: 40241 .. date: 2020-04-13-02-56-24 .. nonce: _FOf7E .. section: C API Move the :c:type:`!PyGC_Head` structure to the internal C API. .. .. bpo: 40170 .. date: 2020-04-11-06-12-44 .. nonce: cmM9oK .. section: C API Convert :c:func:`PyObject_IS_GC` macro to a function to hide implementation details. .. .. bpo: 40241 .. date: 2020-04-10-19-43-04 .. nonce: Xm3w-1 .. section: C API Add the functions :c:func:`PyObject_GC_IsTracked` and :c:func:`PyObject_GC_IsFinalized` to the public API to allow to query if Python objects are being currently tracked or have been already finalized by the garbage collector respectively. Patch by Pablo Galindo. .. .. bpo: 40170 .. date: 2020-04-05-00-37-34 .. nonce: Seuh3D .. section: C API The :c:func:`!PyObject_NEW` macro becomes an alias to the :c:func:`PyObject_New` macro, and the :c:func:`!PyObject_NEW_VAR` macro becomes an alias to the :c:func:`PyObject_NewVar` macro, to hide implementation details. They no longer access directly the :c:member:`PyTypeObject.tp_basicsize` member. .. .. bpo: 40170 .. date: 2020-04-05-00-21-38 .. nonce: Tx0vy6 .. section: C API :c:func:`PyType_HasFeature` now always calls :c:func:`PyType_GetFlags` to hide implementation details. Previously, it accessed directly the :c:member:`PyTypeObject.tp_flags` member when the limited C API was not used. .. .. bpo: 40170 .. date: 2020-04-05-00-10-45 .. nonce: 6nFYbY .. section: C API Convert the :c:func:`!PyObject_GET_WEAKREFS_LISTPTR` macro to a function to hide implementation details: the macro accessed directly to the :c:member:`PyTypeObject.tp_weaklistoffset` member. .. .. bpo: 40170 .. date: 2020-04-05-00-02-13 .. nonce: IFsGZ- .. section: C API Convert :c:func:`PyObject_CheckBuffer` macro to a function to hide implementation details: the macro accessed directly the :c:member:`PyTypeObject.tp_as_buffer` member. .. .. bpo: 40170 .. date: 2020-04-04-23-51-59 .. nonce: uXQ701 .. section: C API Always declare :c:func:`PyIndex_Check` as an opaque function to hide implementation details: remove ``PyIndex_Check()`` macro. The macro accessed directly the :c:member:`PyTypeObject.tp_as_number` member. .. .. bpo: 39947 .. date: 2020-03-25-19-44-55 .. nonce: 2OxvPt .. section: C API Add :c:func:`PyThreadState_GetID` function: get the unique identifier of a Python thread state.