summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
Commit message (Collapse)AuthorAgeFilesLines
* gh-109523: Raise a BlockingIOError if reading text from a non-blocking ↵Giovanni Siragusa2024-12-021-0/+9
| | | | stream cannot immediately return bytes. (GH-122933)
* gh-126899: Add `**kw` to `tkinter.Misc.after` and `tkinter.Misc.after_idle` ↵Zhikang Yan2024-12-011-0/+8
| | | | | | | (#126900) --------- Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-69639: Add mixed-mode rules for complex arithmetic (C-like) (GH-124829)Sergey B Kirpichev2024-11-261-0/+4
| | | | | | | | | | | | | | | "Generally, mixed-mode arithmetic combining real and complex variables should be performed directly, not by first coercing the real to complex, lest the sign of zero be rendered uninformative; the same goes for combinations of pure imaginary quantities with complex variables." (c) Kahan, W: Branch cuts for complex elementary functions. This patch implements mixed-mode arithmetic rules, combining real and complex variables as specified by C standards since C99 (in particular, there is no special version for the true division with real lhs operand). Most C compilers implementing C99+ Annex G have only these special rules (without support for imaginary type, which is going to be deprecated in C2y).
* gh-107954: Document PEP 741 in What's New 3.14 (#127056)Victor Stinner2024-11-251-0/+36
|
* gh-101100: Fix sphinx warnings of removed opcodes (#127222)Yuki Kobayashi2024-11-246-16/+16
|
* GH-127133: Remove ability to nest argument groups & mutually exclusive ↵Savannah Ostrowski2024-11-241-0/+8
| | | | groups (#127186)
* gh-97514: Authenticate the forkserver control socket. (GH-99309)Gregory P. Smith2024-11-201-0/+5
| | | | | | | | | | | | | | | | | | | This adds authentication to the forkserver control socket. In the past only filesystem permissions protected this socket from code injection into the forkserver process by limiting access to the same UID, which didn't exist when Linux abstract namespace sockets were used (see issue) meaning that any process in the same system network namespace could inject code. We've since stopped using abstract namespace sockets by default, but protecting our control sockets regardless of type is a good idea. This reuses the HMAC based shared key auth already used by `multiprocessing.connection` sockets for other purposes. Doing this is useful so that filesystem permissions are not relied upon and trust isn't implied by default between all processes running as the same UID with access to the unix socket. ### pyperformance benchmarks No significant changes. Including `concurrent_imap` which exercises `multiprocessing.Pool.imap` in that suite. ### Microbenchmarks This does _slightly_ slow down forkserver use. How much so appears to depend on the platform. Modern platforms and simple platforms are less impacted. This PR adds additional IPC round trips to the control socket to tell forkserver to spawn a new process. Systems with potentially high latency IPC are naturally impacted more. Typically a 1-4% slowdown on a very targeted process creation microbenchmark, with a worst case overloaded system slowdown of 20%. No evidence that these slowdowns appear in practical sense. See the PR for details.
* gh-126615: `ctypes`: Make `COMError` public (GH-126686)Jun Komoda2024-11-201-0/+3
| | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* GH-84850: Improve whatsnew entry for `[Fancy]URLopener` removal (#127032)Barney Gale2024-11-201-0/+7
|
* gh-123299: Copyedit "What's New in Python 3.14" (#127028)Hugo van Kemenade2024-11-201-17/+17
|
* GH-84850: Remove `urllib.request.URLopener` and `FancyURLopener` (#125739)Barney Gale2024-11-191-0/+4
|
* gh-85957: Add missing MIME types for images with RFCs (#126966)Hugo van Kemenade2024-11-181-0/+11
|
* gh-123803: Support arbitrary code page encodings on Windows (GH-123804)Serhiy Storchaka2024-11-181-0/+3
| | | | | | If the cpXXX encoding is not directly implemented in Python, fall back to use the Windows-specific API codecs.code_page_encode() and codecs.code_page_decode().
* Add PEP 761 to What's New (#126550)Seth Michael Larson2024-11-151-0/+10
| | | | Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
* gh-122549: Add platform.invalidate_caches() (#122547)Bénédikt Tran2024-11-151-0/+8
| | | Allow to invalidate platform's cached results.
* Doc: Recommend shlex.quote alongside pipes removal (#126570)Colin Watson2024-11-141-0/+2
| | | | | | | One of the most common reasons I see the old `pipes` module still in use when porting to Python 3.13 is for the undocumented `pipes.quote` function, which can easily be replaced with `shlex.quote`. I think it's worth specifically calling this out, since being directed to the `subprocess` module would be confusing in this case.
* gh-126390: Support for preserving order of options and nonoption arguments ↵Serhiy Storchaka2024-11-131-0/+3
| | | | in gnu_getopt() (GH-126393)
* gh-123619: Add an unstable C API function for enabling deferred reference ↵Peter Bierma2024-11-131-0/+3
| | | | | | counting (GH-123635) Co-authored-by: Sam Gross <colesbury@gmail.com>
* gh-116897: Deprecate generic false values in urllib.parse.parse_qsl() ↵Serhiy Storchaka2024-11-121-0/+7
| | | | | | | | (GH-116903) Accepting objects with false values (like 0 and []) except empty strings and byte-like objects and None in urllib.parse functions parse_qsl() and parse_qs() is now deprecated.
* gh-89083: add support for UUID version 8 (RFC 9562) (#123224)Bénédikt Tran2024-11-121-0/+8
| | | Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
* gh-126061: Add PyLong_IsPositive/Zero/Negative() functions (#126065)RUANG (James Roy)2024-11-121-0/+5
| | | | | Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-125916: Allow functools.reduce() 'initial' to be a keyword argument (#125917)Sayandip Dutta2024-11-121-0/+5
|
* gh-84852: Add MIME types for .eot, ,otf, .ttf, .woff and .woff2 fonts (#20199)Sahil Prajapati2024-11-121-0/+10
| | | | | Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
* Docs: re-create pages for removed modules to document their removal. (#126622)Ned Batchelder2024-11-111-0/+6
| | | | | Will also need to change the redirects that were created here: https://github.com/python/psf-salt/pull/521/files
* gh-89416: Add RFC 9559 MIME types for Matroska formats (#126412)Hugo van Kemenade2024-11-111-0/+14
| | | | | Co-authored-by: Zachary Ware <zachary.ware@gmail.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
* gh-84559: gh-103134: Whats new 3.14 entries for multiprocessing. (GH-126697)Gregory P. Smith2024-11-111-8/+25
|
* gh-126374: Add support of options with optional arguments in the getopt ↵Serhiy Storchaka2024-11-111-0/+5
| | | | module (GH-126375)
* Add missing fullstop `.` to whatsnew/3.8.rst (GH-126553)Rafael Fontenelle2024-11-111-1/+1
|
* gh-120754: Add to `io` optimization to what's new (#126466)Cody Maloney2024-11-061-0/+9
|
* gh-120057: Add os.reload_environ() function (#126268)Victor Stinner2024-11-051-3/+4
| | | | | | | Replace the os.environ.refresh() method with a new os.reload_environ() function. Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
* gh-101865: Docs: Keep co_lnotab deprecation for at least 3.14 (#126392)Hugo van Kemenade2024-11-041-2/+2
|
* gh-119793: Add optional length-checking to `map()` (GH-120471)Nice Zombies2024-11-041-0/+4
| | | | | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
* gh-126353: remove implicit creation of loop from `asyncio.get_event_loop` ↵Kumar Aditya2024-11-041-0/+5
| | | | | (#126354) Remove implicit creation of loop from `asyncio.get_event_loop`. This is a step forward of deprecating the policy system of asyncio.
* gh-120026: soft deprecate Py_HUGE_VAL macro (#120027)Sergey B Kirpichev2024-11-011-0/+4
| | | Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
* gh-97850: remove ``find_loader`` and ``get_loader`` from ``pkgutil`` (#119656)Bénédikt Tran2024-11-012-1/+8
| | | | | Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Brett Cannon <brett@python.org>
* GH-125413: Add `pathlib.Path.scandir()` method (#126060)Barney Gale2024-11-011-0/+6
| | | | | Add `pathlib.Path.scandir()` as a trivial wrapper of `os.scandir()`. This will be used to implement several `PathBase` methods more efficiently, including methods that provide `Path.copy()`.
* gh-58032: Docs: Sort argparse alphabetically (GH-125871)Hugo van Kemenade2024-10-301-10/+9
| | | Sort argparse alphabetically
* GH-125837: Split `LOAD_CONST` into three. (GH-125972)Mark Shannon2024-10-291-1/+1
| | | | | | | | * Add LOAD_CONST_IMMORTAL opcode * Add LOAD_SMALL_INT opcode * Remove RETURN_CONST opcode
* gh-126012: Add `__class_getitem__` to `memoryview` (#126013)Brian Schubert2024-10-271-0/+4
| | | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* gh-125633: Add function `ispackage` to stdlib `inspect` (#125634)Zhikang Yan2024-10-271-0/+4
| | | | | --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* gh-121654: Add PyType_Freeze() function (#122457)Victor Stinner2024-10-251-0/+3
| | | Co-authored-by: Petr Viktorin <encukou@gmail.com>
* gh-123930: Better error for "from imports" when script shadows module (#123929)Shantanu2024-10-241-2/+2
|
* gh-125286: Share the Main Refchain With Legacy Interpreters (gh-125709)Eric Snow2024-10-231-0/+9
| | | | | They used to be shared, before 3.12. Returning to sharing them resolves a failure on Py_TRACE_REFS builds. Co-authored-by: Petr Viktorin <encukou@gmail.com>
* gh-58032: Deprecate the argparse.FileType type converter (GH-124664)Serhiy Storchaka2024-10-231-0/+6
|
* gh-80958: unittest: discovery support for namespace packages as start ↵Jacob Walls2024-10-231-0/+9
| | | | directory (#123820)
* gh-125767: Fix pickling and copying of super objects (GH-125781)Serhiy Storchaka2024-10-211-0/+4
| | | | | | | | | Previously, copying a super object returned a copy of the instance invoking super(). Pickling a super object could pickle the instance invoking super() or fail, depending on its type and protocol. Now deep copying returns a new super object and pickling pickles the super object. Shallow copying returns the same super object.
* GH-99749: Add What's New entry for GH-124456 (GH-125671)Savannah Ostrowski2024-10-191-0/+5
|
* gh-125542: Deprecate prefix_chars in ArgumentParser.add_argument_group() ↵Savannah Ostrowski2024-10-171-0/+6
| | | | (GH-125563)
* gh-124694: Add concurrent.futures.InterpreterPoolExecutor (gh-124548)Eric Snow2024-10-161-0/+8
| | | | | | | | | | | | This is an implementation of InterpreterPoolExecutor that builds on ThreadPoolExecutor. (Note that this is not tied to PEP 734, which is strictly about adding a new stdlib module.) Possible future improvements: * support passing a script for the initializer or to submit() * support passing (most) arbitrary functions without pickling * support passing closures * optionally exec functions against __main__ instead of the their original module
* gh-123299: Copyedit "What's New in Python 3.14" (#125438)Hugo van Kemenade2024-10-151-54/+56
|