bpo-45693: Document `port` parameter to `loop.create_server` (GH-29760) (GH-29762)
Document the `port` parameter to `loop.create_server` in `asyncio`. In
particular, note that if `host` resolves to multiple network interfaces,
passing in `port=0` will result in a different random unused port being
used for each interface.
Brett Cannon [Mon, 22 Nov 2021 23:09:15 +0000 (15:09 -0800)]
[3.10] bpo-45250: fix docs regarding `__iter__` and iterators being inconsistently required by CPython (GH-29170) (GH-29650)
It is now considered a historical accident that e.g. `for` loops and the `iter()` built-in function do not require the iterators they work with to define `__iter__`, only `__next__`.
(cherry picked from commit be36e0634060c7d5dee8e8876fb888bbb53d992a)
bpo-44649: Fix dataclasses(slots=True) with a field with a default, but init=False (GH-29692)
Special handling is needed, because for non-slots dataclasses the instance attributes are not set: reading from a field just references the class's attribute of the same name, which contains the default value. But this doesn't work for classes using __slots__: they don't read the class's attribute. So in that case (and that case only), initialize the instance attribute. Handle this for both normal defaults, and for fields using default_factory.
(cherry picked from commit d3062f672c92855b7e9e962ad4bf1a67abd4589b)
Co-authored-by: Eric V. Smith <ericvsmith@users.noreply.github.com>
[3.10] [doc] bpo-45680: Disambiguate ``__getitem__`` and ``__class_getitem__`` in the data model (GH-29389) (GH-29620)
The documentation explaining Python's data model does not adequately explain
the differences between ``__getitem__`` and ``__class_getitem__``, nor does it
explain when each is called. There is an attempt at explaining
``__class_getitem__`` in the documentation for ``GenericAlias`` objects, but
this does not give sufficient clarity into how the method works. Moreover, it
is the wrong place for that information to be found; the explanation of
``__class_getitem__`` should be in the documentation explaining the data model.
[doc] Expand on soft keywords in the docs for keyword.py (GH-29139) (GH-29195)
Add link at the top and fix the existing links to point to the "[soft keywords](https://docs.python.org/3.10/reference/lexical_analysis.htmlGH-soft-keywords)" section created in the Python 3.10 docs.
bpo-45835: Fix race condition in test_queue (GH-29601) (GH-29612)
Some of the tests in test_queue had a race condition in which a
non-sentinel value could be enqueued after the final sentinel value
leading to not all the inputs being processed (and test failures).
This changes feed() to enqueue a sentinel once the inputs are exhausted,
which guarantees that the final queued object is a sentinel. This
requires the number of feeder threads to match the number of consumer
threads, but that's already the case in the relevant tests.
(cherry picked from commit df3e53d86b2ad67da9ac2b5a3f56257d1f394982)
Accessing one enum member from another originally raised an `AttributeError`, but became possible due to a performance boost implementation detail. In 3.11 it will again raise an `AttributeError`.
bpo-45831: _Py_DumpASCII() uses a single write() call if possible (GH-29596) (GH-29598)
If the string is ASCII only and doesn't need to escape characters,
write the whole string with a single write() syscall.
(cherry picked from commit b919d8105c4d77f00509b6d3ab2073f09db640de)
Co-authored-by: Victor Stinner <vstinner@python.org>
bpo-42540: reallocation of id_mutex should not force default allocator (GH-29564)
Unlike the other locks reinitialized by _PyRuntimeState_ReInitThreads,
the "interpreters.main->id_mutex" is not freed by _PyRuntimeState_Fini
and should not force the default raw allocator.
(cherry picked from commit 736684b1bb67369a2e95a9f621752deead44e7ef)
bpo-45677: Reword first section of `sqlite3` docs (GH-29326) (GH-29566)
* bpo-45677: Avoid addressing the reader as 'you' in sqlite3 docs
* Adjust wording
* Adjust wording again
* Typo
* Update Doc/library/sqlite3.rst
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
* Address review: adjust wording
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Lib/sqlite3/__init__.py
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Lib/sqlite3/__init__.py
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Update Doc/library/sqlite3.rst
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* Apply Alex' suggestion, and apply 80 char limit to PR
* Minor adjustment
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
(cherry picked from commit 6c5a312fb6d92e879bf4c570b94e18bb9ffe5970)
bpo-25381: Update explanation of exceptions in C. (GH-26838) (GH-29568)
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
(cherry picked from commit ad43dc0b54994e7e7d06e3d4896ade188b36ee12)
bpo-45799: [Doc] improve confusing sentence in __main__.rst (GH-29546)
I was reading this bit last night and thought it was a typo. In the light of day, I realized it wasn't *technically* a typo, but definitely confusing wording. This PR fixes the confusing sentence.
[3.10] bpo-45772: socket.socket should be a class instead of a function (GH-23960) (GH-29542)
* [bpo-45772](): socket.socket should be a class instead of a function
Currently `socket.socket` is documented as a function, but it is really
a class (and thus has function-like usage to construct an object). This
correction would ensure that Python projects that are interlinking
Python's documentation can properly locate `socket.socket` as a type.
(cherry picked from commit 4c792f39e688b11c7c19e411ed4f76a7baa44638)
Co-authored-by: Hong Xu <hong@topbug.net> Automerge-Triggered-By: GH:asvetlov
Since `.. module:: contextvars` sets the module using `.. class:: contextvars.Token`, intersphinx records it as `contextvars.contextvars.Token`.
(cherry picked from commit e501d70b347c5093018d12482c30a7a98aab86d0)
bpo-40170: Update What's New in Python 3.9 (GH-29470)
The PyType_HasFeature() change has been reverted: the static inline
function access directly the PyTypeObject.tp_flags member.
(cherry picked from commit 99c7e9853fa13af414168f179213e3d2fae03a45)
Co-authored-by: Victor Stinner <vstinner@python.org>
bpo-45678: Add more ``singledispatchmethod`` tests (GH-29412) (GH-29424)
In order to fix a bug in the 3.9 branch in GH-29394, more tests were added to
``test_functools.py`` to ensure that ``singledispatchmethod`` still correctly
wrapped a target method, even if the target method had already been wrapped by
multiple other decorators. This PR brings the new tests into the 3.11 and 3.10
branches as well.
(cherry picked from commit 32f55d1a5de66f9a86964fc0655d7a006a9d90b9)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Remove reference to ``Tuple`` at top of ``typing`` docs (GH-29401)
``typing.Tuple`` has been deprecated since Python 3.9, so it makes no sense to mention it so prominently in the documentation for the ``typing`` module.
(cherry picked from commit 87032cfa3dc975d7442fd57dea2c6a56d31c911a)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
bpo-45457: Minor fix to documentation for SSLContext.load_default_certs. (GH-28947) (GH-29373)
Specify that SSLContext.set_default_verify_paths is called on ALL systems.
The code of SSLContext.load_default_certs was changed in bpo-22449 to do this,
this fix corrects the documentation to match that change.
(cherry picked from commit 3551bf16ee5c25b6349209dd30e032f0f3b9ace3)
SGI_ABI support was removed in [1] but this variable was never removed
from the makefile. Currently, it is just a bad variable that does not
get replaced by the configure script.
bpo-45516: add protocol description to the Traversable documentation (GH-29039)
* bpo-45516: add protocol description to the Traversable documentation
Signed-off-by: Filipe Laíns <lains@riseup.net>
* Update Doc/library/importlib.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Update Lib/importlib/abc.py
* Update Doc/library/importlib.rst
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com> Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
(cherry picked from commit 4d03de3329ed8daa9c1107b1aedbb0fa280bddb6)
Co-authored-by: Filipe Laíns <filipe.lains@gmail.com>
Alex Waygood [Fri, 29 Oct 2021 10:03:48 +0000 (11:03 +0100)]
[3.10] bo-45655: Add "relevant PEPs" section to typing documentation (GH-29302)
The list of PEPs at the top of the documentation for the ``typing`` module has
become too long to be readable. This PR proposes presenting this
information in a more structured and readable way by adding a new "relevant
PEPs" section to the ``typing`` docs.
Run test_shelve with all underlying dbm implementations and pickle protocols.
Also make test_shelve discoverable.
(cherry picked from commit b781cc3bfce7c052728b06aad9f1a467cced289d)
bpo-45624: make test_graphlib not depend on the iteration order of sets (GH-29233) (GH-29293)
the current test depended on integer sets being iterated on in a certain
fixed order. That order is different on PyPy (insertion based) and could
change in CPython in the future in theory. Make the test robust against
a different iteration order by sorting.
(cherry picked from commit 7401694807fc6b5f7b35ff73c06f4bb852e02946)
Co-authored-by: Carl Friedrich Bolz-Tereick <cfbolz@gmx.de>
bpo-45583: Correct datamodel documentation of int() (GH-29182) (GH-29285)
It should be noted that this part of the documentation is redundant with
function.rst's documentation of int. This one was correctly updated with Python 3.8.
(cherry picked from commit d9c1868c25ec6466e8d8ae21fe9315a8a03836ab)
Co-authored-by: Arthur Milchior <arthur@milchior.fr>
Sam Gross [Thu, 28 Oct 2021 19:22:57 +0000 (15:22 -0400)]
[3.10] bpo-28737: Document when tp_dealloc should call PyObject_GC_UnTrack() (GH-29246) (GH-29249)
Objects that support garbage collection ("container" objects) should
call PyObject_GC_UnTrack() from their destructors before clearing any
fields which may point to other "container" objects.
(cherry picked from commit 35e1ff38ee67ee543d9fcb268c3552c5397f9b3f)
when using the Tk 8.6.11 provided by python.org macOS installers.
Patch by Marc Culler of the Tk project.
(cherry picked from commit be8318be05e1a874215fa75b8845ede74b2c69b6)