summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* gh-126175: Add attributes to TOMLDecodeError. Deprecate free-form `__init__` ↵Taneli Hukkinen2024-11-134-52/+163
| | | | args (GH-126428)
* gh-126341: add release check to `__iter__` method of `memoryview` (#126759)Ritvik Pasham2024-11-133-0/+4
| | | | | | Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: sobolevn <mail@sobolevn.me>
* gh-71936: Fix race condition in multiprocessing.Pool (GH-124973)Petr Viktorin2024-11-133-13/+22
| | | | | | | | | | | | | | | | | | * gh-71936: Fix race condition in multiprocessing.Pool Proxes of shared objects register a Finalizer in BaseProxy._incref(), and it will call BaseProxy._decref() when it is GCed. This may cause a race condition with Pool(maxtasksperchild=None) on Windows. A connection would be closed and raised TypeError when a GC occurs between _ConnectionBase._check_writable() and _ConnectionBase._send_bytes() in _ConnectionBase.send() in the second or later task, and a new object is allocated that shares the id() of a previously deleted one. Instead of using the id() of the token (or the proxy), use a unique, non-reusable number. Co-Authored-By: Akinori Hattori <hattya@gmail.com>
* gh-104745: Limit starting a patcher more than once without stopping it (#126649)Red4Ru2024-11-133-2/+62
| | | | | | | | Previously, this would cause an `AttributeError` if the patch stopped more than once after this, and would also disrupt the original patched object. --------- Co-authored-by: Peter Bierma <zintensitydev@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* bpo-46128: Strip IsolatedAsyncioTestCase frames from reported stacktraces ↵Andrew Svetlov2024-11-132-0/+3
| | | | | | | | | | | | | | | (#30196) * Strip IsolatedAsyncioTestCase frames from reported stacktraces * Update Misc/NEWS.d/next/Library/2021-12-19-10-47-24.bpo-46128.Qv3EK1.rst Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> --------- Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* gh-126757: fix minor typo (GH-126758)Yuxuan Zhang2024-11-121-1/+1
|
* gh-119826: Improved fallback for ntpath.abspath() on Windows (GH-119938)Nice Zombies2024-11-123-18/+35
|
* gh-126688: Reinit import lock after fork (#126692)Sam Gross2024-11-124-0/+11
| | | | | | The PyMutex implementation supports unlocking after fork because we clear the list of waiters in parking_lot.c. This doesn't work as well for _PyRecursiveMutex because on some systems, such as SerenityOS, the thread id is not preserved across fork().
* GH-120423: `pathname2url()`: handle forward slashes in Windows paths (#126593)Barney Gale2024-11-123-6/+14
| | | | Adjust `urllib.request.pathname2url()` so that forward slashes in Windows paths are handled identically to backward slashes.
* gh-116897: Deprecate generic false values in urllib.parse.parse_qsl() ↵Serhiy Storchaka2024-11-125-9/+45
| | | | | | | | (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-125-19/+109
| | | Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
* gh-126705: Make os.PathLike more like a protocol (#126706)Stephen Morton2024-11-123-0/+6
| | | it can now be used as a base class in other protocols
* gh-76785: Improved Subinterpreters Compatibility with 3.12 (2/2) (gh-126707)Eric Snow2024-11-129-91/+247
| | | | | | | | | These changes makes it easier to backport the _interpreters, _interpqueues, and _interpchannels modules to Python 3.12. This involves the following: * add the _PyXI_GET_STATE() and _PyXI_GET_GLOBAL_STATE() macros * add _PyXIData_lookup_context_t and _PyXIData_GetLookupContext() * add _Py_xi_state_init() and _Py_xi_state_fini()
* gh-95382: Use cache for indentations in the JSON encoder (GH-118636)Serhiy Storchaka2024-11-121-64/+118
|
* gh-126133: Only use start year in PSF copyright, remove end years (#126236)Hugo van Kemenade2024-11-1245-50/+47
|
* gh-126061: Add PyLong_IsPositive/Zero/Negative() functions (#126065)RUANG (James Roy)2024-11-127-0/+164
| | | | | 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-128-13/+76
|
* gh-126595: fix a crash when calling `itertools.count(sys.maxsize)` (#126617)Bénédikt Tran2024-11-123-0/+13
|
* gh-126405: fix use-after-free in `_asyncio.Future.remove_done_callback` ↵Kumar Aditya2024-11-121-0/+2
| | | | (#126733)
* gh-126209: Fix inconsistency of `skip_file_prefixes` in `warnings.warn`'s C ↵Daehee Kim2024-11-124-5/+23
| | | | | | | and Python implementations (GH-126329) Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
* gh-126525: Fix `makeunicodedata.py` output on macOS and Windows (#126526)sobolevn2024-11-121-1/+1
|
* gh-126699: allow AsyncIterator to be used as a base for Protocols (#126702)Stephen Morton2024-11-123-1/+6
|
* Fix error message of "Check if Autoconf files are up to date" job (#126683)sobolevn2024-11-121-1/+1
|
* gh-84852: Add MIME types for .eot, ,otf, .ttf, .woff and .woff2 fonts (#20199)Sahil Prajapati2024-11-124-0/+22
| | | | | 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>
* GH-126195: Use M1 JIT memory protection APIs (GH-126196)Diego Russo2024-11-122-2/+17
|
* gh-58749: Remove incorrect language spec claims about the global statement ↵Beomsoo Kim2024-11-123-44/+191
| | | | | | | | (GH-126523) * Removes erroneous explanation of the `global` statement restrictions; a name declared as global can be subsequently bound using any kind of name binding operation. * Updates `test_global.py` to also test various name-binding scenarios for global variables to ensure correct behavior
* gh-76785: Improved Subinterpreters Compatibility with 3.12 (1/2) (gh-126704)Eric Snow2024-11-119-43/+55
| | | | | | | | | These changes makes it easier to backport the _interpreters, _interpqueues, and _interpchannels modules to Python 3.12. This involves the following: * rename several structs and typedefs * add several typedefs * stop using the PyThreadState.state field directly in parking_lot.c
* Docs: re-create pages for removed modules to document their removal. (#126622)Ned Batchelder2024-11-1128-0/+451
| | | | | Will also need to change the redirects that were created here: https://github.com/python/psf-salt/pull/521/files
* gh-126413: Add translation tests for getopt and optparse (GH-126698)Tomas R.2024-11-117-55/+114
|
* gh-76785: Minor Cleanup of Exception-related Cross-interpreter State (gh-126602)Eric Snow2024-11-114-58/+81
| | | This change makes it easier to backport the _interpreters, _interpqueues, and _interpchannels modules to Python 3.12.
* gh-89416: Add RFC 9559 MIME types for Matroska formats (#126412)Hugo van Kemenade2024-11-114-20/+46
| | | | | 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
|
* Update documentation links to Microsoft's documentation pages (GH-126379)谭九鼎2024-11-113-9/+9
|
* gh-126374: Add support of options with optional arguments in the getopt ↵Serhiy Storchaka2024-11-115-25/+112
| | | | module (GH-126375)
* gh-117941: Reject option names starting with "--no-" in ↵Serhiy Storchaka2024-11-113-0/+12
| | | | | | argparse.BooleanOptionalAction (GH-125894) They never worked correctly.
* gh-126505: Fix bugs in compiling case-insensitive character classes (GH-126557)Serhiy Storchaka2024-11-113-9/+73
| | | | | * upper-case non-BMP character was ignored * the ASCII flag was ignored when matching a character range whose upper bound is beyond the BMP region
* gh-126654: Fix crash in several functions in `_interpreters` module (#126678)sobolevn2024-11-113-0/+25
|
* gh-126417: validate ABC methods on multiprocessing proxy types (#126454)Stephen Morton2024-11-111-0/+22
| | | | | Checks that appropriate dunder __ methods exist on the dict and list proxy types. Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Add missing fullstop `.` to whatsnew/3.8.rst (GH-126553)Rafael Fontenelle2024-11-111-1/+1
|
* gh-126664: Use `else` instead of `finally` in "The with statement" ↵vivodi2024-11-111-5/+2
| | | | documentation. (GH-126665)
* gh-117378: Clear up the NEWS entry wording (GH-126634)Gregory P. Smith2024-11-111-3/+3
| | | | | gh-117378: Clear up the NEWS entry wording. Docs are hard. Lets go shopping!
* gh-126543: Docs: change "bound type var" to "bounded" when used in the ↵Pedro Fonini2024-11-111-11/+11
| | | | context of the 'bound' kw argument to TypeVar (#126584)
* gh-126647: `Doc/using/configure.rst`: Add an entry for ↵Kirill Podoprigora2024-11-101-0/+13
| | | | | | | | | | | | | | ``--enable-experimental-jit`` option (#126648) Add an entry for the ``--enable-experimental-jit`` option in ``Doc/using/configure.rst``. This was added as an experimental option in CPython 3.13. Possible values for it: * `no` - don't build the JIT. * `yes` - build the JIT. * `yes-off` - build the JIT but disable it by default. * `interpreter` - don't build the JIT but enable tier 2 interpreter instead. Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-117378: Only run the new multiprocessing SysPath test when appropriate ↵Gregory P. Smith2024-11-101-29/+30
| | | | | | | | | (GH-126635) The first version had it running two forkserver and one spawn tests underneath each of the _fork, _forkserver, and _spawn test suites that build off the generic one. This adds to the existing complexity of the multiprocessing test suite by offering BaseTestCase classes another attribute to control which suites they are invoked under. Practicality vs purity here. :/ Net result: we don't over-run the new test and their internal logic is simplified.
* Skip test in test_socket.py if `sys.getrefcount` isn't available (#126640)CF Bolz-Tereick2024-11-101-0/+2
| | | Skip `testMakefileCloseSocketDestroy` test if `sys.getrefcount` isn't available. This is necessary for PyPy and other Python implementations that do not have `sys.getrefcount`.
* gh-126565: Skip `zipfile.Path.exists` check in write mode (#126576)Jan Hicken2024-11-102-1/+2
| | | | | | | | | | | When `zipfile.Path.open` is called, the implementation will check whether the path already exists in the ZIP file. However, this check is only required when the ZIP file is in read mode. By swapping arguments of the `and` operator, the short-circuiting will prevent the check from being run in write mode. This change will improve the performance of `open()`, because checking whether a file exists is slow in write mode, especially when the archive has many members.
* Postpone `module.__loader__` deprecation to Python 3.16 (#126482)Hugo van Kemenade2024-11-103-9/+9
|
* gh-117378: Fix multiprocessing forkserver preload sys.path inheritance. ↵Gregory P. Smith2024-11-093-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | (GH-126538) gh-117378: Fix multiprocessing forkserver preload sys.path inheritance. `sys.path` was not properly being sent from the parent process when launching the multiprocessing forkserver process to preload imports. This bug has been there since the forkserver start method was introduced in Python 3.4. It was always _supposed_ to inherit `sys.path` the same way the spawn method does. Observable behavior change: A `''` value in `sys.path` will now be replaced in the forkserver's `sys.path` with an absolute pathname `os.path.abspath(os.getcwd())` saved at the time that `multiprocessing` was imported in the parent process as it already was when using the spawn start method. **This will only be observable during forkserver preload imports**. The code invoked before calling things in another process already correctly sets `sys.path`. Which is likely why this went unnoticed for so long as a mere performance issue in some configurations. A workaround for the bug on impacted Pythons is to set PYTHONPATH in the environment before multiprocessing's forkserver process was started. Not perfect as that is then inherited by other children, etc, but likely good enough for many people's purposes. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* pathlib ABCs: tighten up `resolve()` and `absolute()` (#126611)Barney Gale2024-11-093-32/+53
| | | | | | | | | | | | In `PathBase.resolve()`, raise `UnsupportedOperation` if a non-POSIX path parser is used (our implementation uses `posixpath._realpath()`, which produces incorrect results for non-POSIX path flavours.) Also tweak code to call `self.absolute()` upfront rather than supplying an emulated `getcwd()` function. Adjust `PathBase.absolute()` to work somewhat like `resolve()`. If a POSIX path parser is used, we treat the root directory as the current directory. This is the simplest useful behaviour for concrete path types without a current directory cursor.
* pathlib ABCs: support initializing paths with no arguments (#126608)Barney Gale2024-11-092-9/+8
| | | | | | | | In the past I've equivocated about whether to require at least one argument in the `PurePathBase` (and `PathBase`) initializer, and what the default should be if we make it optional. I now have a local use case that has persuaded me to make it optional and default to the empty string (a `zipp.Path`-like class that treats relative and absolute paths similarly.) Happily this brings the base class more in line with `PurePath` and `Path`.