Skip to content

Commit c411cfa

Browse files
committed
Merge branch 'main' into pythongh-81079-glob-case-sensitive-arg-2
2 parents dc82494 + 65a49c6 commit c411cfa

File tree

158 files changed

+2898
-833
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+2898
-833
lines changed
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Read the Docs PR preview
2+
# Automatically edits a pull request's descriptions with a link
3+
# to the documentation's preview on Read the Docs.
4+
5+
on:
6+
pull_request_target:
7+
types:
8+
- opened
9+
paths:
10+
- 'Doc/**'
11+
- '.github/workflows/doc.yml'
12+
13+
permissions:
14+
pull-requests: write
15+
16+
concurrency:
17+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
18+
cancel-in-progress: true
19+
20+
jobs:
21+
documentation-links:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: readthedocs/actions/preview@v1
25+
with:
26+
project-slug: "cpython-previews"
27+
single-version: "true"

.mailmap

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# This file sets the canonical name for contributors to the repository.
2+
# Documentation: https://git-scm.com/docs/gitmailmap
3+
Amethyst Reese <amethyst@n7.gg> <john@noswap.com>

.readthedocs.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Read the Docs configuration file
2+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3+
# Project page: https://readthedocs.org/projects/cpython-previews/
4+
5+
version: 2
6+
7+
sphinx:
8+
configuration: Doc/conf.py
9+
10+
build:
11+
os: ubuntu-22.04
12+
tools:
13+
python: "3"
14+
15+
commands:
16+
- make -C Doc venv html
17+
- mkdir _readthedocs
18+
- mv Doc/build/html _readthedocs/html

Doc/c-api/gcsupport.rst

+20-1
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,31 @@ rules:
5959
Analogous to :c:func:`PyObject_New` but for container objects with the
6060
:const:`Py_TPFLAGS_HAVE_GC` flag set.
6161
62-
6362
.. c:function:: TYPE* PyObject_GC_NewVar(TYPE, PyTypeObject *type, Py_ssize_t size)
6463
6564
Analogous to :c:func:`PyObject_NewVar` but for container objects with the
6665
:const:`Py_TPFLAGS_HAVE_GC` flag set.
6766
67+
.. c:function:: PyObject* PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *type, size_t extra_size)
68+
69+
Analogous to :c:func:`PyObject_GC_New` but allocates *extra_size*
70+
bytes at the end of the object (at offset
71+
:c:member:`~PyTypeObject.tp_basicsize`).
72+
The allocated memory is initialized to zeros,
73+
except for the :c:type:`Python object header <PyObject>`.
74+
75+
The extra data will be deallocated with the object, but otherwise it is
76+
not managed by Python.
77+
78+
.. warning::
79+
The function is marked as unstable because the final mechanism
80+
for reserving extra data after an instance is not yet decided.
81+
For allocating a variable number of fields, prefer using
82+
:c:type:`PyVarObject` and :c:member:`~PyTypeObject.tp_itemsize`
83+
instead.
84+
85+
.. versionadded:: 3.12
86+
6887
6988
.. c:function:: TYPE* PyObject_GC_Resize(TYPE, PyVarObject *op, Py_ssize_t newsize)
7089

Doc/conf.py

+27-8
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,13 @@
114114
# Short title used e.g. for <title> HTML tags.
115115
html_short_title = '%s Documentation' % release
116116

117-
# Deployment preview information, from Netlify
118-
# (See netlify.toml and https://docs.netlify.com/configure-builds/environment-variables/#git-metadata)
117+
# Deployment preview information
118+
# (See .readthedocs.yml and https://docs.readthedocs.io/en/stable/reference/environment-variables.html)
119+
repository_url = os.getenv("READTHEDOCS_GIT_CLONE_URL")
119120
html_context = {
120-
"is_deployment_preview": os.getenv("IS_DEPLOYMENT_PREVIEW"),
121-
"repository_url": os.getenv("REPOSITORY_URL"),
122-
"pr_id": os.getenv("REVIEW_ID")
121+
"is_deployment_preview": os.getenv("READTHEDOCS_VERSION_TYPE") == "external",
122+
"repository_url": repository_url.removesuffix(".git") if repository_url else None,
123+
"pr_id": os.getenv("READTHEDOCS_VERSION")
123124
}
124125

125126
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
@@ -263,11 +264,29 @@
263264

264265
linkcheck_allowed_redirects = {
265266
# bpo-NNNN -> BPO -> GH Issues
266-
r'https://bugs.python.org/issue\?@action=redirect&bpo=\d+': 'https://github.com/python/cpython/issues/\d+',
267+
r'https://bugs.python.org/issue\?@action=redirect&bpo=\d+': r'https://github.com/python/cpython/issues/\d+',
267268
# GH-NNNN used to refer to pull requests
268-
r'https://github.com/python/cpython/issues/\d+': 'https://github.com/python/cpython/pull/\d+',
269+
r'https://github.com/python/cpython/issues/\d+': r'https://github.com/python/cpython/pull/\d+',
269270
# :source:`something` linking files in the repository
270-
r'https://github.com/python/cpython/tree/.*': 'https://github.com/python/cpython/blob/.*'
271+
r'https://github.com/python/cpython/tree/.*': 'https://github.com/python/cpython/blob/.*',
272+
# Intentional HTTP use at Misc/NEWS.d/3.5.0a1.rst
273+
r'http://www.python.org/$': 'https://www.python.org/$',
274+
# Used in license page, keep as is
275+
r'https://www.zope.org/': r'https://www.zope.dev/',
276+
# Microsoft's redirects to learn.microsoft.com
277+
r'https://msdn.microsoft.com/.*': 'https://learn.microsoft.com/.*',
278+
r'https://docs.microsoft.com/.*': 'https://learn.microsoft.com/.*',
279+
r'https://go.microsoft.com/fwlink/\?LinkID=\d+': 'https://learn.microsoft.com/.*',
280+
# Language redirects
281+
r'https://toml.io': 'https://toml.io/en/',
282+
r'https://www.redhat.com': 'https://www.redhat.com/en',
283+
# Other redirects
284+
r'https://www.boost.org/libs/.+': r'https://www.boost.org/doc/libs/\d_\d+_\d/.+',
285+
r'https://support.microsoft.com/en-us/help/\d+': 'https://support.microsoft.com/en-us/topic/.+',
286+
r'https://perf.wiki.kernel.org$': 'https://perf.wiki.kernel.org/index.php/Main_Page',
287+
r'https://www.sqlite.org': 'https://www.sqlite.org/index.html',
288+
r'https://mitpress.mit.edu/sicp$': 'https://mitpress.mit.edu/9780262510875/structure-and-interpretation-of-computer-programs/',
289+
r'https://www.python.org/psf/': 'https://www.python.org/psf-landing/',
271290
}
272291

273292
linkcheck_anchors_ignore = [

Doc/faq/extending.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ on what you're trying to do.
4242
.. XXX make sure these all work
4343
4444
`Cython <https://cython.org>`_ and its relative `Pyrex
45-
<https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers
45+
<https://www.csse.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_ are compilers
4646
that accept a slightly modified form of Python and generate the corresponding
4747
C code. Cython and Pyrex make it possible to write an extension without having
4848
to learn Python's C API.

Doc/faq/general.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ commercial use, to sell copies of Python in source or binary form (modified or
5454
unmodified), or to sell products that incorporate Python in some form. We would
5555
still like to know about all commercial use of Python, of course.
5656

57-
See `the PSF license page <https://www.python.org/psf/license/>`_ to find further
58-
explanations and a link to the full text of the license.
57+
See `the license page <https://docs.python.org/3/license.html>`_ to find further
58+
explanations and the full text of the PSF License.
5959

6060
The Python logo is trademarked, and in certain cases permission is required to
6161
use it. Consult `the Trademark Usage Policy
@@ -215,7 +215,7 @@ every day, and Usenet readers are often more able to cope with this volume.
215215
Announcements of new software releases and events can be found in
216216
comp.lang.python.announce, a low-traffic moderated list that receives about five
217217
postings per day. It's available as `the python-announce mailing list
218-
<https://mail.python.org/mailman/listinfo/python-announce-list>`_.
218+
<https://mail.python.org/mailman3/lists/python-announce-list.python.org/>`_.
219219

220220
More info about other mailing lists and newsgroups
221221
can be found at https://www.python.org/community/lists/.
@@ -352,7 +352,7 @@ titled "Python X.Y Release Schedule", where X.Y is a version that hasn't been
352352
publicly released yet.
353353

354354
New development is discussed on `the python-dev mailing list
355-
<https://mail.python.org/mailman/listinfo/python-dev/>`_.
355+
<https://mail.python.org/mailman3/lists/python-dev.python.org/>`_.
356356

357357

358358
Is it reasonable to propose incompatible changes to Python?

Doc/faq/programming.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Yes.
6161
`Pyflakes <https://github.com/PyCQA/pyflakes>`_ do basic checking that will
6262
help you catch bugs sooner.
6363

64-
Static type checkers such as `Mypy <http://mypy-lang.org/>`_,
64+
Static type checkers such as `Mypy <https://mypy-lang.org/>`_,
6565
`Pyre <https://pyre-check.org/>`_, and
6666
`Pytype <https://github.com/google/pytype>`_ can check type hints in Python
6767
source code.

Doc/howto/pyporting.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ to make sure everything functions as expected in both versions of Python.
438438
.. _Futurize: https://python-future.org/automatic_conversion.html
439439
.. _importlib2: https://pypi.org/project/importlib2
440440
.. _Modernize: https://python-modernize.readthedocs.io/
441-
.. _mypy: http://mypy-lang.org/
441+
.. _mypy: https://mypy-lang.org/
442442
.. _Porting to Python 3: http://python3porting.com/
443443
.. _Pylint: https://pypi.org/project/pylint
444444

Doc/library/asyncio-eventloop.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ Opening network connections
529529
specifies requirements for algorithms that reduce this user-visible
530530
delay and provides an algorithm.
531531

532-
For more information: https://tools.ietf.org/html/rfc6555
532+
For more information: https://datatracker.ietf.org/doc/html/rfc6555
533533

534534
.. versionchanged:: 3.11
535535

Doc/library/asyncio-task.rst

+36
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,42 @@ Running Tasks Concurrently
527527
and there is no running event loop.
528528

529529

530+
Eager Task Factory
531+
==================
532+
533+
.. function:: eager_task_factory(loop, coro, *, name=None, context=None)
534+
535+
A task factory for eager task execution.
536+
537+
When using this factory (via :meth:`loop.set_task_factory(asyncio.eager_task_factory) <loop.set_task_factory>`),
538+
coroutines begin execution synchronously during :class:`Task` construction.
539+
Tasks are only scheduled on the event loop if they block.
540+
This can be a performance improvement as the overhead of loop scheduling
541+
is avoided for coroutines that complete synchronously.
542+
543+
A common example where this is beneficial is coroutines which employ
544+
caching or memoization to avoid actual I/O when possible.
545+
546+
.. note::
547+
548+
Immediate execution of the coroutine is a semantic change.
549+
If the coroutine returns or raises, the task is never scheduled
550+
to the event loop. If the coroutine execution blocks, the task is
551+
scheduled to the event loop. This change may introduce behavior
552+
changes to existing applications. For example,
553+
the application's task execution order is likely to change.
554+
555+
.. versionadded:: 3.12
556+
557+
.. function:: create_eager_task_factory(custom_task_constructor)
558+
559+
Create an eager task factory, similar to :func:`eager_task_factory`,
560+
using the provided *custom_task_constructor* when creating a new task instead
561+
of the default :class:`Task`.
562+
563+
.. versionadded:: 3.12
564+
565+
530566
Shielding From Cancellation
531567
===========================
532568

Doc/library/copyreg.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Such constructors may be factory functions or class instances.
2929

3030
Declares that *function* should be used as a "reduction" function for objects
3131
of type *type*. *function* must return either a string or a tuple
32-
containing two or five elements. See the :attr:`~pickle.Pickler.dispatch_table`
32+
containing between two and six elements. See the :attr:`~pickle.Pickler.dispatch_table`
3333
for more details on the interface of *function*.
3434

3535
The *constructor_ob* parameter is a legacy feature and is now ignored, but if

Doc/library/hashlib.rst

+6-6
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ Constructor functions also accept the following tree hashing parameters:
432432
:alt: Explanation of tree mode parameters.
433433

434434
See section 2.10 in `BLAKE2 specification
435-
<https://blake2.net/blake2_20130129.pdf>`_ for comprehensive review of tree
435+
<https://www.blake2.net/blake2_20130129.pdf>`_ for comprehensive review of tree
436436
hashing.
437437

438438

@@ -619,7 +619,7 @@ on the hash function used in digital signatures.
619619
by the signer.
620620

621621
(`NIST SP-800-106 "Randomized Hashing for Digital Signatures"
622-
<https://csrc.nist.gov/publications/detail/sp/800-106/final>`_)
622+
<https://csrc.nist.gov/publications/detail/sp/800-106/archive/2009-02-25>`_)
623623

624624
In BLAKE2 the salt is processed as a one-time input to the hash function during
625625
initialization, rather than as an input to each compression function.
@@ -628,7 +628,7 @@ initialization, rather than as an input to each compression function.
628628

629629
*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose
630630
cryptographic hash function, such as SHA-256, is not suitable for hashing
631-
passwords. See `BLAKE2 FAQ <https://blake2.net/#qa>`_ for more
631+
passwords. See `BLAKE2 FAQ <https://www.blake2.net/#qa>`_ for more
632632
information.
633633
..
634634
@@ -764,9 +764,9 @@ Domain Dedication 1.0 Universal:
764764

765765
* *Alexandr Sokolovskiy*
766766

767-
.. _BLAKE2: https://blake2.net
767+
.. _BLAKE2: https://www.blake2.net
768768
.. _HMAC: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
769-
.. _BLAKE: https://131002.net/blake/
769+
.. _BLAKE: https://web.archive.org/web/20200918190133/https://131002.net/blake/
770770
.. _SHA-3: https://en.wikipedia.org/wiki/NIST_hash_function_competition
771771
.. _ChaCha: https://cr.yp.to/chacha.html
772772
.. _pyblake2: https://pythonhosted.org/pyblake2/
@@ -782,7 +782,7 @@ Domain Dedication 1.0 Universal:
782782
Module :mod:`base64`
783783
Another way to encode binary hashes for non-binary environments.
784784

785-
https://blake2.net
785+
https://www.blake2.net
786786
Official BLAKE2 website.
787787

788788
https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/documents/fips180-2.pdf

Doc/library/http.client.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ HTTPConnection Objects
354354
the CONNECT request.
355355

356356
As HTTP/1.1 is used for HTTP CONNECT tunnelling request, `as per the RFC
357-
<https://tools.ietf.org/html/rfc7231#section-4.3.6>`_, a HTTP ``Host:``
357+
<https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.6>`_, a HTTP ``Host:``
358358
header must be provided, matching the authority-form of the request target
359359
provided as the destination for the CONNECT request. If a HTTP ``Host:``
360360
header is not provided via the headers argument, one is generated and

Doc/library/importlib.metadata.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ The "selectable" entry points were introduced in ``importlib_metadata``
178178
no parameters and always returned a dictionary of entry points, keyed
179179
by group. With ``importlib_metadata`` 5.0 and Python 3.12,
180180
``entry_points`` always returns an ``EntryPoints`` object. See
181-
`backports.entry_points_selectable <https://pypi.org/project/backports.entry_points_selectable>`_
181+
`backports.entry_points_selectable <https://pypi.org/project/backports.entry-points-selectable>`_
182182
for compatibility options.
183183

184184

Doc/library/os.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -4593,7 +4593,7 @@ written in Python, such as a mail server's external command delivery program.
45934593
:attr:`!children_system`, and :attr:`!elapsed` in that order.
45944594

45954595
See the Unix manual page
4596-
:manpage:`times(2)` and `times(3) <https://www.freebsd.org/cgi/man.cgi?time(3)>`_ manual page on Unix or `the GetProcessTimes MSDN
4596+
:manpage:`times(2)` and `times(3) <https://man.freebsd.org/cgi/man.cgi?time(3)>`_ manual page on Unix or `the GetProcessTimes MSDN
45974597
<https://docs.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getprocesstimes>`_
45984598
on Windows. On Windows, only :attr:`!user` and :attr:`!system` are known; the other attributes are zero.
45994599

Doc/library/plistlib.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ or :class:`datetime.datetime` objects.
4646

4747
.. seealso::
4848

49-
`PList manual page <https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/PropertyLists/>`_
49+
`PList manual page <https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/PropertyLists/>`_
5050
Apple's documentation of the file format.
5151

5252

Doc/library/resource.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ platform.
244244
used by all of this user id's processes.
245245
This limit is enforced only if bit 1 of the vm.overcommit sysctl is set.
246246
Please see
247-
`tuning(7) <https://www.freebsd.org/cgi/man.cgi?query=tuning&sektion=7>`__
247+
`tuning(7) <https://man.freebsd.org/cgi/man.cgi?query=tuning&sektion=7>`__
248248
for a complete description of this sysctl.
249249

250250
.. availability:: FreeBSD.

Doc/library/select.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ Kqueue Objects
505505
Kevent Objects
506506
--------------
507507

508-
https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
508+
https://man.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
509509

510510
.. attribute:: kevent.ident
511511

Doc/library/ssl.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -1719,7 +1719,7 @@ to speed up repeated connections from the same clients.
17191719
.. versionadded:: 3.3
17201720

17211721
.. seealso::
1722-
`SSL/TLS & Perfect Forward Secrecy <https://vincent.bernat.im/en/blog/2011-ssl-perfect-forward-secrecy>`_
1722+
`SSL/TLS & Perfect Forward Secrecy <https://vincent.bernat.ch/en/blog/2011-ssl-perfect-forward-secrecy>`_
17231723
Vincent Bernat.
17241724

17251725
.. method:: SSLContext.wrap_socket(sock, server_side=False, \

Doc/library/statistics.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This module provides functions for calculating mathematical statistics of
2222
numeric (:class:`~numbers.Real`-valued) data.
2323

2424
The module is not intended to be a competitor to third-party libraries such
25-
as `NumPy <https://numpy.org>`_, `SciPy <https://www.scipy.org/>`_, or
25+
as `NumPy <https://numpy.org>`_, `SciPy <https://scipy.org/>`_, or
2626
proprietary full-featured statistics packages aimed at professional
2727
statisticians such as Minitab, SAS and Matlab. It is aimed at the level of
2828
graphing and scientific calculators.

Doc/library/struct.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -602,4 +602,4 @@ The :mod:`struct` module also defines the following type:
602602

603603
.. _ieee 754 standard: https://en.wikipedia.org/wiki/IEEE_754-2008_revision
604604

605-
.. _IETF RFC 1700: https://tools.ietf.org/html/rfc1700
605+
.. _IETF RFC 1700: https://datatracker.ietf.org/doc/html/rfc1700

Doc/library/sys.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,7 @@ always available.
792792
additional garbage collector overhead if the object is managed by the garbage
793793
collector.
794794

795-
See `recursive sizeof recipe <https://code.activestate.com/recipes/577504>`_
795+
See `recursive sizeof recipe <https://code.activestate.com/recipes/577504/>`_
796796
for an example of using :func:`getsizeof` recursively to find the size of
797797
containers and all their contents.
798798

0 commit comments

Comments
 (0)