- consistently use correct parameter markup
- consistently use submodule name as database name
- improve accuracy of the dbm.dumb.open() spec
- remove dumbdbm class refs and replace them with generic "database object"
- use parameter list for dbm.dumb.open()
(cherry picked from commit 6c2b419fb91c8d7daa769d39f73768114b5eb45a)
Co-authored-by: Erlend E. Aasland <erlend@python.org>
- add abbreviation directives for NDBM and GDBM
- consistently spell NDBM as NDBM
- silence broken ndbm class refs
- improve accuracy of dbm.ndbm.open() spec
- use replacement text for NDBM/GDBM file format incompatibility note
- add refs to other parts of the docs (dict, bytes, etc.)
- clarify whichdb() return value by using list markup
- silence refs to example or generic submodule methods (keys, get, etc.)
[3.12] gh-101100: Fix Sphinx warnings in `c-api/structures.rst` (GH-113564) (#114527)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Petr Viktorin <encukou@gmail.com>
Petr Viktorin [Wed, 24 Jan 2024 12:21:10 +0000 (13:21 +0100)]
[3.12] gh-114440: Close writer pipe in multiprocessing.Queue, not concurrent.futures (GH-114489)
This was left out of the 3.12 backport for three related issues:
- gh-107219 (which adds `self.call_queue._writer.close()` to `_ExecutorManagerThread` in `concurrent.futures`)
- gh-109370 (which changes this to be only called on Windows)
- gh-109047 (which moves the call to `multiprocessing.Queue`'s `_terminate_broken`)
Without this change, ProcessPoolExecutor sometimes hangs on Windows
when a worker process is terminated.
Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
[3.12] gh-101438: Avoid reference cycle in ElementTree.iterparse. (GH-114269) (GH-114499)
The iterator returned by ElementTree.iterparse() may hold on to a file
descriptor. The reference cycle prevented prompt clean-up of the file
descriptor if the returned iterator was not exhausted.
(cherry picked from commit ce01ab536f22a3cf095d621f3b3579c1e3567859)
Co-authored-by: Erlend E. Aasland <erlend@python.org> Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
[3.12] gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign thread (GH-113261) (GH-114430)
Always set a _MainThread as a main thread after os.fork() is called from
a thread started not by the threading module.
A new _MainThread was already set as a new main thread after fork if
threading.current_thread() was not called for a foreign thread before fork.
Now, if it was called before fork, the implicitly created _DummyThread will
be turned into _MainThread after fork.
It fixes, in particularly, an incompatibility of _DummyThread with
the threading shutdown logic which relies on the main thread
having tstate_lock.
[3.12] gh-114328: tty cbreak mode should not alter ICRNL (GH-114335) (#114410)
The terminal CR -> NL mapping setting should be inherited in cbreak mode as OSes do not specify altering it as part of their stty cbreak mode definition.
(cherry picked from commit fd49e226700e2483a452c3c92da6f15d822ae054)
Co-authored-by: Gregory P. Smith <greg@krypto.org>
[3.12] gh-114241: Fix and improve the ftplib CLI (GH-114242) (GH-114404)
* Fix writing the retrieved binary file to stdout.
* Add a newline after writing warnings to stderr.
* Fix a TypeError if the netrc file doesn't contain a host/default entry.
* Improve the usage message.
(cherry picked from commit 42d72b23dd1ee0e100ee47aca64fc1e1bbe576c9)
[3.12] gh-114332: Fix the flags reference for ``re.compile()`` (GH-114334) (#114339)
gh-114332: Fix the flags reference for ``re.compile()`` (GH-114334)
The GH-93000 change set inadvertently caused a sentence in re.compile()
documentation to refer to details that no longer followed. Correct this
with a link to the Flags sub-subsection.
[3.12] gh-112092: clarify unstable ABI recompilation requirements (GH-112093) (#114260)
gh-112092: clarify unstable ABI recompilation requirements (GH-112093)
Use different versions in the examples for when extensions do and do not need to be recompiled to make the examples easier to understand.
(cherry picked from commit 68a7b78cd5185cbd9456f42c15ecf872a7c16f44)
[3.12] gh-108303: Move all doctest related files and tests to `Lib/test/test_doctest/` (GH-112109) (#114254)
gh-108303: Move all doctest related files and tests to `Lib/test/test_doctest/` (GH-112109)
(cherry picked from commit 9c93350f582fe6f5fed2cd873869dfe4fbf2dfe8)
[3.12] gh-113205: test_multiprocessing.test_terminate: Shorter sleep for threadpools (GH-114186) (GH-114222)
Threads can't be forced to terminate (without potentially corrupting too much
state), so the expected behaviour of `ThreadPool.terminate` is to wait for
the currently executing tasks to finish.
Use shorter sleep time for threadpools, so if a task manages to start, the test
doesn't block for long.
[3.12] gh-104522: Fix test_subprocess failure when build Python in the root home directory (GH-114236) (GH-114239)
EPERM is raised when setreuid() fails.
EACCES is set in execve() when the test user has not access to sys.executable.
(cherry picked from commit 311d1e2701037952eaf75f993be76f3092c1f01c)
[3.12] gh-96905: In IDLE code, stop redefining built-ins 'dict' and 'object' (GH-114227) (#114228)
Prefix 'dict' with 'o', 'g', or 'l' for 'object', 'global', or 'local'.
Suffix 'object' with '_'.
(cherry picked from commit 6f4b242a03e521a55f0b9e440703b424ed18ce2f)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
[3.12] gh-38807: Fix race condition in Lib/trace.py (GH-110143) (GH-114206)
Instead of checking if a directory does not exist and thereafter
creating it, directly call os.makedirs() with the exist_ok=True.
(cherry picked from commit 78fcde039a33d8463e34356d5462fecee0f2831a)
[3.12] gh-81479: For Help => IDLE Doc, stop double-spacing some lists. (GH-114168) (#114170)
This matches Firefox format. Edge double-spaces non-simple
lists but I think it looks worse.
(cherry picked from commit e07a400c310ad3bdd72bb0ae401991af17435e4d)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
* Simplify __post_init__ example usage. It applies to all base classes, not just dataclasses.
(cherry picked from commit 05008c27b73da640b63c0d335c65ade517c0eb84)
[3.12] gh-94220: Align fnmatch docs with the implementation and amend markup (GH-114152) (#114155)
- Align the argument spec for fnmatch functions with the actual
implementation.
- Update Sphinx markup to recent recommandations.
- Add link to 'iterable' glossary entry.
[3.12] Fix 'expresion' typo in IDLE doc (GH-114130) (#114139)
The substantive change is on line 577/593. Rest is header/footer stuff ignored when displaying.
(cherry picked from commit 7a24ecc953e1edc9c5bbedbd19cc587c3ff635ea)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
gh-114096: Restore privileges in _winapi.CreateJunction after creating the junction (GH-114089)
This avoids impact on later parts of the application which may be able to do things they otherwise shouldn't.
(cherry picked from commit de4ced54eb08e8630e3b6c13436d4ecc3fb14708)
Co-authored-by: Steve Dower <steve.dower@python.org>
Align the multiprocessing shared memory docs with Diatáxis's
recommendations for references.
- use a parameter list for the SharedMemory.__init__() argument spec
- use the imperative mode
- use versionadded, not versionchanged, for added parameters
- reflow touched lines according to SemBr
Petr Viktorin [Tue, 16 Jan 2024 15:28:27 +0000 (16:28 +0100)]
[3.12] gh-113858: GH Actions: Make ccache smaller (GH-113859, GH-113945) (GH-114082)
This backports 3 PRs:
- https://github.com/python/cpython/pull/113859
Only save ccache on pushes
- https://github.com/python/cpython/pull/113945
Cut down ccache size
- Only save the ccache in the main reusable builds, not on builds that
don't use special build options:
- Generated files check
- OpenSSL tests
- Hypothesis tests
- Halve the max cache size, to 200M
- https://github.com/python/cpython/pull/114113
Fixup for the above
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
- add :class: and :mod: markups where needed
- fix incorrect escaping of a star in ShareableList arg spec
- mark up parameters with stars: *val*
- mark up list of built-in types using list markup
- remove unneeded parentheses from :meth: markups
[3.12] gh-101225: Increase the socket backlog when creating a multiprocessing.connection.Listener (GH-113567) (#114018)
gh-101225: Increase the socket backlog when creating a multiprocessing.connection.Listener (GH-113567)
Increase the backlog for multiprocessing.connection.Listener` objects created
by `multiprocessing.manager` and `multiprocessing.resource_sharer` to
significantly reduce the risk of getting a connection refused error when creating
a `multiprocessing.connection.Connection` to them.
(cherry picked from commit c7d59bd8cfa053e77ae3446c82afff1fd38a4886)
Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>