Skip to content

Commit 150ae29

Browse files
Merge branch '3.14' into backport-59547a2-3.14
2 parents d7e44f7 + c70f409 commit 150ae29

File tree

78 files changed

+629
-383
lines changed

Some content is hidden

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

78 files changed

+629
-383
lines changed

Android/testbed/app/build.gradle.kts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ for ((i, prefix) in prefixes.withIndex()) {
4747
val libDir = file("$prefix/lib")
4848
val version = run {
4949
for (filename in libDir.list()!!) {
50-
"""python(\d+\.\d+)""".toRegex().matchEntire(filename)?.let {
50+
"""python(\d+\.\d+[a-z]*)""".toRegex().matchEntire(filename)?.let {
5151
return@run it.groupValues[1]
5252
}
5353
}
@@ -64,9 +64,10 @@ for ((i, prefix) in prefixes.withIndex()) {
6464
val libPythonDir = file("$libDir/python$pythonVersion")
6565
val triplet = run {
6666
for (filename in libPythonDir.list()!!) {
67-
"""_sysconfigdata__android_(.+).py""".toRegex().matchEntire(filename)?.let {
68-
return@run it.groupValues[1]
69-
}
67+
"""_sysconfigdata_[a-z]*_android_(.+).py""".toRegex()
68+
.matchEntire(filename)?.let {
69+
return@run it.groupValues[1]
70+
}
7071
}
7172
throw GradleException("Failed to find Python triplet in $libPythonDir")
7273
}

Doc/library/importlib.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1253,7 +1253,7 @@ find and load modules.
12531253
To accommodate this requirement, when running on iOS, extension module
12541254
binaries are *not* packaged as ``.so`` files on ``sys.path``, but as
12551255
individual standalone frameworks. To discover those frameworks, this loader
1256-
is be registered against the ``.fwork`` file extension, with a ``.fwork``
1256+
is registered against the ``.fwork`` file extension, with a ``.fwork``
12571257
file acting as a placeholder in the original location of the binary on
12581258
``sys.path``. The ``.fwork`` file contains the path of the actual binary in
12591259
the ``Frameworks`` folder, relative to the app bundle. To allow for

Doc/library/stdtypes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5944,7 +5944,7 @@ It is written as ``None``.
59445944
The Ellipsis Object
59455945
-------------------
59465946

5947-
This object is commonly used used to indicate that something is omitted.
5947+
This object is commonly used to indicate that something is omitted.
59485948
It supports no special operations. There is exactly one ellipsis object, named
59495949
:const:`Ellipsis` (a built-in name). ``type(Ellipsis)()`` produces the
59505950
:const:`Ellipsis` singleton.

Doc/library/tkinter.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ by spaces. Without getting into too many details, notice the following:
392392
* Operations which are implemented as separate *commands* in Tcl (like
393393
``grid`` or ``destroy``) are represented as *methods* on Tkinter widget
394394
objects. As you'll see shortly, at other times Tcl uses what appear to be
395-
method calls on widget objects, which more closely mirror what would is
395+
method calls on widget objects, which more closely mirror what is
396396
used in Tkinter.
397397

398398

Doc/library/warnings.rst

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -476,14 +476,21 @@ Available Functions
476476
.. function:: warn_explicit(message, category, filename, lineno, module=None, registry=None, module_globals=None, source=None)
477477

478478
This is a low-level interface to the functionality of :func:`warn`, passing in
479-
explicitly the message, category, filename and line number, and optionally the
480-
module name and the registry (which should be the ``__warningregistry__``
481-
dictionary of the module). The module name defaults to the filename with
482-
``.py`` stripped; if no registry is passed, the warning is never suppressed.
479+
explicitly the message, category, filename and line number, and optionally
480+
other arguments.
483481
*message* must be a string and *category* a subclass of :exc:`Warning` or
484482
*message* may be a :exc:`Warning` instance, in which case *category* will be
485483
ignored.
486484

485+
*module*, if supplied, should be the module name.
486+
If no module is passed, the filename with ``.py`` stripped is used.
487+
488+
*registry*, if supplied, should be the ``__warningregistry__`` dictionary
489+
of the module.
490+
If no registry is passed, each warning is treated as the first occurrence,
491+
that is, filter actions ``"default"``, ``"module"`` and ``"once"`` are
492+
handled as ``"always"``.
493+
487494
*module_globals*, if supplied, should be the global namespace in use by the code
488495
for which the warning is issued. (This argument is used to support displaying
489496
source for modules found in zipfiles or other non-filesystem import

Doc/reference/lexical_analysis.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1308,8 +1308,8 @@ The parts are separated by a decimal point, ``.``::
13081308
2.71828
13091309
4.0
13101310

1311-
Unlike in integer literals, leading zeros are allowed in the numeric parts.
1312-
For example, ``077.010`` is legal, and denotes the same number as ``77.10``.
1311+
Unlike in integer literals, leading zeros are allowed.
1312+
For example, ``077.010`` is legal, and denotes the same number as ``77.01``.
13131313

13141314
As in integer literals, single underscores may occur between digits to help
13151315
readability::

Doc/whatsnew/3.14.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1140,7 +1140,7 @@ concurrent.futures
11401140
.. _whatsnew314-concurrent-futures-start-method:
11411141

11421142
* On Unix platforms other than macOS, :ref:`'forkserver'
1143-
<multiprocessing-start-method-forkserver>` is now the the default :ref:`start
1143+
<multiprocessing-start-method-forkserver>` is now the default :ref:`start
11441144
method <multiprocessing-start-methods>` for
11451145
:class:`~concurrent.futures.ProcessPoolExecutor`
11461146
(replacing :ref:`'fork' <multiprocessing-start-method-fork>`).
@@ -1591,7 +1591,7 @@ multiprocessing
15911591
.. _whatsnew314-multiprocessing-start-method:
15921592

15931593
* On Unix platforms other than macOS, :ref:`'forkserver'
1594-
<multiprocessing-start-method-forkserver>` is now the the default :ref:`start
1594+
<multiprocessing-start-method-forkserver>` is now the default :ref:`start
15951595
method <multiprocessing-start-methods>`
15961596
(replacing :ref:`'fork' <multiprocessing-start-method-fork>`).
15971597
This change does not affect Windows or macOS, where :ref:`'spawn'

Include/cpython/warnings.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,3 @@ PyAPI_FUNC(int) PyErr_WarnExplicitFormat(
1818

1919
// DEPRECATED: Use PyErr_WarnEx() instead.
2020
#define PyErr_Warn(category, msg) PyErr_WarnEx((category), (msg), 1)
21-
22-
int _PyErr_WarnExplicitObjectWithContext(
23-
PyObject *category,
24-
PyObject *message,
25-
PyObject *filename,
26-
int lineno);

Include/refcount.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ PyAPI_FUNC(Py_ssize_t) Py_REFCNT(PyObject *ob);
117117
}
118118
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000
119119
# define Py_REFCNT(ob) _Py_REFCNT(_PyObject_CAST(ob))
120+
#else
121+
# define Py_REFCNT(ob) _Py_REFCNT(ob)
120122
#endif
121123
#endif
122124

Lib/ctypes/__init__.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""create and manipulate C data types in Python"""
22

3-
import os as _os, sys as _sys
3+
import os as _os
4+
import sys as _sys
5+
import sysconfig as _sysconfig
46
import types as _types
57

68
__version__ = "1.1.0"
@@ -556,10 +558,9 @@ def LoadLibrary(self, name):
556558

557559
if _os.name == "nt":
558560
pythonapi = PyDLL("python dll", None, _sys.dllhandle)
559-
elif _sys.platform == "android":
560-
pythonapi = PyDLL("libpython%d.%d.so" % _sys.version_info[:2])
561-
elif _sys.platform == "cygwin":
562-
pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2])
561+
elif _sys.platform in ["android", "cygwin"]:
562+
# These are Unix-like platforms which use a dynamically-linked libpython.
563+
pythonapi = PyDLL(_sysconfig.get_config_var("LDLIBRARY"))
563564
else:
564565
pythonapi = PyDLL(None)
565566

0 commit comments

Comments
 (0)