Skip to content

Commit d109941

Browse files
Merge branch 'main' into fix-rlcompleter-leak
2 parents 06f63eb + 0aab07c commit d109941

Some content is hidden

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

52 files changed

+2138
-284
lines changed

Doc/c-api/weakref.rst

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -64,30 +64,6 @@ as much as it can.
6464
.. versionadded:: 3.13
6565
6666
67-
.. c:function:: PyObject* PyWeakref_GetObject(PyObject *ref)
68-
69-
Return a :term:`borrowed reference` to the referenced object from a weak
70-
reference, *ref*. If the referent is no longer live, returns ``Py_None``.
71-
72-
.. note::
73-
74-
This function returns a :term:`borrowed reference` to the referenced object.
75-
This means that you should always call :c:func:`Py_INCREF` on the object
76-
except when it cannot be destroyed before the last usage of the borrowed
77-
reference.
78-
79-
.. deprecated-removed:: 3.13 3.15
80-
Use :c:func:`PyWeakref_GetRef` instead.
81-
82-
83-
.. c:function:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref)
84-
85-
Similar to :c:func:`PyWeakref_GetObject`, but does no error checking.
86-
87-
.. deprecated-removed:: 3.13 3.15
88-
Use :c:func:`PyWeakref_GetRef` instead.
89-
90-
9167
.. c:function:: int PyWeakref_IsDead(PyObject *ref)
9268
9369
Test if the weak reference *ref* is dead. Returns 1 if the reference is

Doc/data/refcounts.dat

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2947,12 +2947,6 @@ PyWeakref_CheckProxy:PyObject*:ob:0:
29472947
PyWeakref_CheckRef:int:::
29482948
PyWeakref_CheckRef:PyObject*:ob:0:
29492949

2950-
PyWeakref_GET_OBJECT:PyObject*::0:
2951-
PyWeakref_GET_OBJECT:PyObject*:ref:0:
2952-
2953-
PyWeakref_GetObject:PyObject*::0:
2954-
PyWeakref_GetObject:PyObject*:ref:0:
2955-
29562950
PyWeakref_GetRef:int:::
29572951
PyWeakref_GetRef:PyObject*:ref:0:
29582952
PyWeakref_GetRef:PyObject**:pobj:+1:

Doc/data/stable_abi.dat

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Doc/deprecations/c-api-pending-removal-in-3.15.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Pending removal in Python 3.15
33

44
* The :c:func:`!PyImport_ImportModuleNoBlock`:
55
Use :c:func:`PyImport_ImportModule` instead.
6-
* :c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`:
6+
* :c:func:`!PyWeakref_GetObject` and :c:func:`!PyWeakref_GET_OBJECT`:
77
Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project
88
<https://github.com/python/pythoncapi-compat/>`__ can be used to get
99
:c:func:`PyWeakref_GetRef` on Python 3.12 and older.

Doc/howto/free-threading-extensions.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,9 @@ that return :term:`strong references <strong reference>`.
173173
+-----------------------------------+-----------------------------------+
174174
| :c:func:`PyDict_Next` | none (see :ref:`PyDict_Next`) |
175175
+-----------------------------------+-----------------------------------+
176-
| :c:func:`PyWeakref_GetObject` | :c:func:`PyWeakref_GetRef` |
176+
| :c:func:`!PyWeakref_GetObject` | :c:func:`PyWeakref_GetRef` |
177177
+-----------------------------------+-----------------------------------+
178-
| :c:func:`PyWeakref_GET_OBJECT` | :c:func:`PyWeakref_GetRef` |
178+
| :c:func:`!PyWeakref_GET_OBJECT` | :c:func:`PyWeakref_GetRef` |
179179
+-----------------------------------+-----------------------------------+
180180
| :c:func:`PyImport_AddModule` | :c:func:`PyImport_AddModuleRef` |
181181
+-----------------------------------+-----------------------------------+

Doc/library/collections.rst

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,11 @@ Several mathematical operations are provided for combining :class:`Counter`
367367
objects to produce multisets (counters that have counts greater than zero).
368368
Addition and subtraction combine counters by adding or subtracting the counts
369369
of corresponding elements. Intersection and union return the minimum and
370-
maximum of corresponding counts. Equality and inclusion compare
371-
corresponding counts. Each operation can accept inputs with signed
372-
counts, but the output will exclude results with counts of zero or less.
370+
maximum of corresponding counts. Symmetric difference returns the difference
371+
between the maximum and minimum of the corresponding counts. Equality and
372+
inclusion compare corresponding counts. Each operation can accept inputs
373+
with signed counts, but the output will exclude results with counts of zero
374+
or below.
373375

374376
.. doctest::
375377

@@ -383,6 +385,8 @@ counts, but the output will exclude results with counts of zero or less.
383385
Counter({'a': 1, 'b': 1})
384386
>>> c | d # union: max(c[x], d[x])
385387
Counter({'a': 3, 'b': 2})
388+
>>> c ^ d # max(c[x], d[x]) - min(c[x], d[x])
389+
Counter({'a': 2, 'b': 1})
386390
>>> c == d # equality: c[x] == d[x]
387391
False
388392
>>> c <= d # inclusion: c[x] <= d[x]
@@ -400,6 +404,9 @@ or subtracting from an empty counter.
400404
.. versionadded:: 3.3
401405
Added support for unary plus, unary minus, and in-place multiset operations.
402406

407+
.. versionadded:: next
408+
Added support for the symmetric difference multiset operation, ``c ^ d``.
409+
403410
.. note::
404411

405412
Counters were primarily designed to work with positive integers to represent

Doc/library/typing.rst

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,19 +2435,6 @@ types.
24352435
Using :func:`super` (and the ``__class__`` :term:`closure variable`) in methods of ``NamedTuple`` subclasses
24362436
is unsupported and causes a :class:`TypeError`.
24372437

2438-
.. deprecated-removed:: 3.13 3.15
2439-
The undocumented keyword argument syntax for creating NamedTuple classes
2440-
(``NT = NamedTuple("NT", x=int)``) is deprecated, and will be disallowed
2441-
in 3.15. Use the class-based syntax or the functional syntax instead.
2442-
2443-
.. deprecated-removed:: 3.13 3.15
2444-
When using the functional syntax to create a NamedTuple class, failing to
2445-
pass a value to the 'fields' parameter (``NT = NamedTuple("NT")``) is
2446-
deprecated. Passing ``None`` to the 'fields' parameter
2447-
(``NT = NamedTuple("NT", None)``) is also deprecated. Both will be
2448-
disallowed in Python 3.15. To create a NamedTuple class with 0 fields,
2449-
use ``class NT(NamedTuple): pass`` or ``NT = NamedTuple("NT", [])``.
2450-
24512438
.. class:: NewType(name, tp)
24522439

24532440
Helper class to create low-overhead :ref:`distinct types <distinct>`.
@@ -2823,13 +2810,6 @@ types.
28232810
.. versionchanged:: 3.13
28242811
Support for the :data:`ReadOnly` qualifier was added.
28252812

2826-
.. deprecated-removed:: 3.13 3.15
2827-
When using the functional syntax to create a TypedDict class, failing to
2828-
pass a value to the 'fields' parameter (``TD = TypedDict("TD")``) is
2829-
deprecated. Passing ``None`` to the 'fields' parameter
2830-
(``TD = TypedDict("TD", None)``) is also deprecated. Both will be
2831-
disallowed in Python 3.15. To create a TypedDict class with 0 fields,
2832-
use ``class TD(TypedDict): pass`` or ``TD = TypedDict("TD", {})``.
28332813

28342814
Protocols
28352815
---------

Doc/library/xml.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ An attacker can abuse XML features to carry out denial of service attacks,
5555
access local files, generate network connections to other machines, or
5656
circumvent firewalls.
5757

58-
Expat versions lower that 2.6.0 may be vulnerable to "billion laughs",
58+
Expat versions lower than 2.6.0 may be vulnerable to "billion laughs",
5959
"quadratic blowup" and "large tokens". Python may be vulnerable if it uses such
6060
older versions of Expat as a system-provided library.
6161
Check :const:`!pyexpat.EXPAT_VERSION`.

Doc/using/configure.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -869,9 +869,9 @@ Libraries options
869869
.. versionchanged:: 3.13
870870
Default to using the installed ``mpdecimal`` library.
871871

872-
.. deprecated-removed:: 3.13 3.15
872+
.. deprecated-removed:: 3.13 3.16
873873
A copy of the ``mpdecimal`` library sources will no longer be distributed
874-
with Python 3.15.
874+
with Python 3.16.
875875

876876
.. seealso:: :option:`LIBMPDEC_CFLAGS` and :option:`LIBMPDEC_LIBS`.
877877

Doc/whatsnew/3.11.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2673,7 +2673,7 @@ Removed
26732673

26742674
(Contributed by Victor Stinner in :issue:`45474`.)
26752675

2676-
* Exclude :c:func:`PyWeakref_GET_OBJECT` from the limited C API. It never
2676+
* Exclude :c:func:`!PyWeakref_GET_OBJECT` from the limited C API. It never
26772677
worked since the :c:type:`!PyWeakReference` structure is opaque in the
26782678
limited C API.
26792679
(Contributed by Victor Stinner in :issue:`35134`.)

0 commit comments

Comments
 (0)