Skip to content

Commit b218bae

Browse files
authored
Merge branch 'main' into Optimize_MAKE_FUNCTION
2 parents 4fe5ed2 + e167e06 commit b218bae

Some content is hidden

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

55 files changed

+1148
-729
lines changed

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ updates:
1212
update-types:
1313
- "version-update:semver-minor"
1414
- "version-update:semver-patch"
15+
groups:
16+
actions:
17+
patterns:
18+
- "*"
1519
cooldown:
1620
# https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns
1721
# Cooldowns protect against supply chain attacks by avoiding the

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ jobs:
475475
-x test_subprocess \
476476
-x test_signal \
477477
-x test_sysconfig
478-
- uses: actions/upload-artifact@v6
478+
- uses: actions/upload-artifact@v7
479479
if: always()
480480
with:
481481
name: hypothesis-example-db

.github/workflows/reusable-check-c-api-docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ jobs:
1515
runs-on: ubuntu-latest
1616
timeout-minutes: 5
1717
steps:
18-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@v6
1919
with:
2020
persist-credentials: false
21-
- uses: actions/setup-python@v5
21+
- uses: actions/setup-python@v6
2222
with:
2323
python-version: '3.x'
2424
- name: Check for undocumented C APIs

.github/workflows/reusable-cifuzz.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
sanitizer: ${{ inputs.sanitizer }}
3535
- name: Upload crash
3636
if: failure() && steps.build.outcome == 'success'
37-
uses: actions/upload-artifact@v6
37+
uses: actions/upload-artifact@v7
3838
with:
3939
name: ${{ inputs.sanitizer }}-artifacts
4040
path: ./out/artifacts

.github/workflows/reusable-san.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ jobs:
9696
run: find "${GITHUB_WORKSPACE}" -name 'san_log.*' | xargs head -n 1000
9797
- name: Archive logs
9898
if: always()
99-
uses: actions/upload-artifact@v6
99+
uses: actions/upload-artifact@v7
100100
with:
101101
name: >-
102102
${{ inputs.sanitizer }}-logs-${{

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
steps:
1616
- name: "Check PRs"
17-
uses: actions/stale@v9
17+
uses: actions/stale@v10
1818
with:
1919
repo-token: ${{ secrets.GITHUB_TOKEN }}
2020
stale-pr-message: 'This PR is stale because it has been open for 30 days with no activity.'

Doc/c-api/bytes.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,13 +371,17 @@ Getters
371371
372372
Get the writer size.
373373
374+
The function cannot fail.
375+
374376
.. c:function:: void* PyBytesWriter_GetData(PyBytesWriter *writer)
375377
376378
Get the writer data: start of the internal buffer.
377379
378380
The pointer is valid until :c:func:`PyBytesWriter_Finish` or
379381
:c:func:`PyBytesWriter_Discard` is called on *writer*.
380382
383+
The function cannot fail.
384+
381385
382386
Low-level API
383387
^^^^^^^^^^^^^

Doc/howto/instrumentation.rst

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,84 @@ Available static markers
341341
.. versionadded:: 3.8
342342

343343

344+
C Entry Points
345+
^^^^^^^^^^^^^^
346+
347+
To simplify triggering of DTrace markers, Python's C API comes with a number
348+
of helper functions that mirror each static marker. On builds of Python without
349+
DTrace enabled, these do nothing.
350+
351+
In general, it is not necessary to call these yourself, as Python will do
352+
it for you.
353+
354+
.. list-table::
355+
:widths: 50 25 25
356+
:header-rows: 1
357+
358+
* * C API Function
359+
* Static Marker
360+
* Notes
361+
* * .. c:function:: void PyDTrace_LINE(const char *arg0, const char *arg1, int arg2)
362+
* :c:func:`!line`
363+
*
364+
* * .. c:function:: void PyDTrace_FUNCTION_ENTRY(const char *arg0, const char *arg1, int arg2)
365+
* :c:func:`!function__entry`
366+
*
367+
* * .. c:function:: void PyDTrace_FUNCTION_RETURN(const char *arg0, const char *arg1, int arg2)
368+
* :c:func:`!function__return`
369+
*
370+
* * .. c:function:: void PyDTrace_GC_START(int arg0)
371+
* :c:func:`!gc__start`
372+
*
373+
* * .. c:function:: void PyDTrace_GC_DONE(Py_ssize_t arg0)
374+
* :c:func:`!gc__done`
375+
*
376+
* * .. c:function:: void PyDTrace_INSTANCE_NEW_START(int arg0)
377+
* :c:func:`!instance__new__start`
378+
* Not used by Python
379+
* * .. c:function:: void PyDTrace_INSTANCE_NEW_DONE(int arg0)
380+
* :c:func:`!instance__new__done`
381+
* Not used by Python
382+
* * .. c:function:: void PyDTrace_INSTANCE_DELETE_START(int arg0)
383+
* :c:func:`!instance__delete__start`
384+
* Not used by Python
385+
* * .. c:function:: void PyDTrace_INSTANCE_DELETE_DONE(int arg0)
386+
* :c:func:`!instance__delete__done`
387+
* Not used by Python
388+
* * .. c:function:: void PyDTrace_IMPORT_FIND_LOAD_START(const char *arg0)
389+
* :c:func:`!import__find__load__start`
390+
*
391+
* * .. c:function:: void PyDTrace_IMPORT_FIND_LOAD_DONE(const char *arg0, int arg1)
392+
* :c:func:`!import__find__load__done`
393+
*
394+
* * .. c:function:: void PyDTrace_AUDIT(const char *arg0, void *arg1)
395+
* :c:func:`!audit`
396+
*
397+
398+
399+
C Probing Checks
400+
^^^^^^^^^^^^^^^^
401+
402+
.. c:function:: int PyDTrace_LINE_ENABLED(void)
403+
.. c:function:: int PyDTrace_FUNCTION_ENTRY_ENABLED(void)
404+
.. c:function:: int PyDTrace_FUNCTION_RETURN_ENABLED(void)
405+
.. c:function:: int PyDTrace_GC_START_ENABLED(void)
406+
.. c:function:: int PyDTrace_GC_DONE_ENABLED(void)
407+
.. c:function:: int PyDTrace_INSTANCE_NEW_START_ENABLED(void)
408+
.. c:function:: int PyDTrace_INSTANCE_NEW_DONE_ENABLED(void)
409+
.. c:function:: int PyDTrace_INSTANCE_DELETE_START_ENABLED(void)
410+
.. c:function:: int PyDTrace_INSTANCE_DELETE_DONE_ENABLED(void)
411+
.. c:function:: int PyDTrace_IMPORT_FIND_LOAD_START_ENABLED(void)
412+
.. c:function:: int PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED(void)
413+
.. c:function:: int PyDTrace_AUDIT_ENABLED(void)
414+
415+
All calls to ``PyDTrace`` functions must be guarded by a call to one
416+
of these functions. This allows Python to minimize performance impact
417+
when probing is disabled.
418+
419+
On builds without DTrace enabled, these functions do nothing and return
420+
``0``.
421+
344422
SystemTap Tapsets
345423
-----------------
346424

Doc/library/datetime.rst

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2611,8 +2611,10 @@ requires, and these work on all supported platforms.
26112611
| ``%M`` | Minute as a zero-padded | 00, 01, ..., 59 | \(9) |
26122612
| | decimal number. | | |
26132613
+-----------+--------------------------------+------------------------+-------+
2614-
| ``%n`` | The newline character | ``\n`` | \(0) |
2615-
| | (``'\n'``). | | |
2614+
| ``%n`` | The newline character | ``\n`` | |
2615+
| | (``'\n'``). For | | |
2616+
| | :meth:`!strptime`, zero or | | |
2617+
| | more whitespace. | | |
26162618
+-----------+--------------------------------+------------------------+-------+
26172619
| ``%p`` | Locale's equivalent of either || AM, PM (en_US); | \(1), |
26182620
| | AM or PM. || am, pm (de_DE) | \(3) |
@@ -2625,8 +2627,9 @@ requires, and these work on all supported platforms.
26252627
| ``%S`` | Second as a zero-padded | 00, 01, ..., 59 | \(4), |
26262628
| | decimal number. | | \(9) |
26272629
+-----------+--------------------------------+------------------------+-------+
2628-
| ``%t`` | The tab character | ``\t`` | \(0) |
2629-
| | (``'\t'``). | | |
2630+
| ``%t`` | The tab character (``'\t'``). | ``\t`` | |
2631+
| | For :meth:`!strptime`, | | |
2632+
| | zero or more whitespace. | | |
26302633
+-----------+--------------------------------+------------------------+-------+
26312634
| ``%T`` | ISO 8601 time format, | 10:01:59 | |
26322635
| | equivalent to ``%H:%M:%S``. | | |
@@ -2717,7 +2720,8 @@ differences between platforms in handling of unsupported format specifiers.
27172720
``%:z`` was added for :meth:`~.datetime.strftime`.
27182721

27192722
.. versionadded:: 3.15
2720-
``%:z``, ``%F``, and ``%D`` were added for :meth:`~.datetime.strptime`.
2723+
``%D``, ``%F``, ``%n``, ``%t``, and ``%:z`` were added for
2724+
:meth:`~.datetime.strptime`.
27212725

27222726

27232727
Technical detail

Doc/library/stdtypes.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ Mutable sequence types also support the following methods:
12861286
:no-typesetting:
12871287
.. method:: sequence.append(value, /)
12881288

1289-
Append *value* to the end of the sequence
1289+
Append *value* to the end of the sequence.
12901290
This is equivalent to writing ``seq[len(seq):len(seq)] = [value]``.
12911291

12921292
.. method:: bytearray.clear()
@@ -5251,6 +5251,11 @@ Note, the *elem* argument to the :meth:`~object.__contains__`,
52515251
:meth:`~set.discard` methods may be a set. To support searching for an equivalent
52525252
frozenset, a temporary one is created from *elem*.
52535253

5254+
.. seealso::
5255+
5256+
For detailed information on thread-safety guarantees for :class:`set`
5257+
objects, see :ref:`thread-safety-set`.
5258+
52545259

52555260
.. _typesmapping:
52565261

0 commit comments

Comments
 (0)