Skip to content

Commit a9ee12d

Browse files
committed
Merge remote-tracking branch 'origin/3.15' into backport-010bebb-3.15
2 parents 8de87a5 + 493031d commit a9ee12d

33 files changed

Lines changed: 406 additions & 129 deletions

‎Doc/c-api/buffer.rst‎

Lines changed: 144 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -284,19 +284,38 @@ The flags that control the logical structure of the memory are listed
284284
in decreasing order of complexity. Note that each flag contains all bits
285285
of the flags below it.
286286

287-
.. tabularcolumns:: |p{0.35\linewidth}|l|l|l|
288-
289-
+-----------------------------+-------+---------+------------+
290-
| Request | shape | strides | suboffsets |
291-
+=============================+=======+=========+============+
292-
| .. c:macro:: PyBUF_INDIRECT | yes | yes | if needed |
293-
+-----------------------------+-------+---------+------------+
294-
| .. c:macro:: PyBUF_STRIDES | yes | yes | NULL |
295-
+-----------------------------+-------+---------+------------+
296-
| .. c:macro:: PyBUF_ND | yes | NULL | NULL |
297-
+-----------------------------+-------+---------+------------+
298-
| .. c:macro:: PyBUF_SIMPLE | NULL | NULL | NULL |
299-
+-----------------------------+-------+---------+------------+
287+
.. stable-abi-note::
288+
289+
These values are available when compiling for the
290+
:ref:`Stable ABI <stable>` since version 3.11.
291+
292+
.. omit-stable-abi-notes::
293+
294+
.. list-table::
295+
:align: left
296+
:widths: auto
297+
:header-rows: 1
298+
299+
* - Request
300+
- shape
301+
- strides
302+
- suboffsets
303+
* - .. c:macro:: PyBUF_INDIRECT
304+
- yes
305+
- yes
306+
- if needed
307+
* - .. c:macro:: PyBUF_STRIDES
308+
- yes
309+
- yes
310+
- NULL
311+
* - .. c:macro:: PyBUF_ND
312+
- yes
313+
- NULL
314+
- NULL
315+
* - .. c:macro:: PyBUF_SIMPLE
316+
- NULL
317+
- NULL
318+
- NULL
300319

301320

302321
.. index:: contiguous, C-contiguous, Fortran contiguous
@@ -308,19 +327,43 @@ C or Fortran :term:`contiguity <contiguous>` can be explicitly requested,
308327
with and without stride information. Without stride information, the buffer
309328
must be C-contiguous.
310329

311-
.. tabularcolumns:: |p{0.35\linewidth}|l|l|l|l|
312-
313-
+-----------------------------------+-------+---------+------------+--------+
314-
| Request | shape | strides | suboffsets | contig |
315-
+===================================+=======+=========+============+========+
316-
| .. c:macro:: PyBUF_C_CONTIGUOUS | yes | yes | NULL | C |
317-
+-----------------------------------+-------+---------+------------+--------+
318-
| .. c:macro:: PyBUF_F_CONTIGUOUS | yes | yes | NULL | F |
319-
+-----------------------------------+-------+---------+------------+--------+
320-
| .. c:macro:: PyBUF_ANY_CONTIGUOUS | yes | yes | NULL | C or F |
321-
+-----------------------------------+-------+---------+------------+--------+
322-
| :c:macro:`PyBUF_ND` | yes | NULL | NULL | C |
323-
+-----------------------------------+-------+---------+------------+--------+
330+
.. stable-abi-note::
331+
332+
These values are available when compiling for the
333+
:ref:`Stable ABI <stable>` since version 3.11.
334+
335+
.. omit-stable-abi-notes::
336+
337+
.. list-table::
338+
:align: left
339+
:widths: auto
340+
:header-rows: 1
341+
342+
* - Request
343+
- shape
344+
- strides
345+
- suboffsets
346+
- contig
347+
* - .. c:macro:: PyBUF_C_CONTIGUOUS
348+
- yes
349+
- yes
350+
- NULL
351+
- C
352+
* - .. c:macro:: PyBUF_F_CONTIGUOUS
353+
- yes
354+
- yes
355+
- NULL
356+
- F
357+
* - .. c:macro:: PyBUF_ANY_CONTIGUOUS
358+
- yes
359+
- yes
360+
- NULL
361+
- C or F
362+
* - :c:macro:`PyBUF_ND`
363+
- yes
364+
- NULL
365+
- NULL
366+
- C
324367

325368

326369
compound requests
@@ -333,27 +376,81 @@ used combinations as single flags.
333376
In the following table *U* stands for undefined contiguity. The consumer would
334377
have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity.
335378

336-
.. tabularcolumns:: |p{0.35\linewidth}|l|l|l|l|l|l|
337-
338-
+-------------------------------+-------+---------+------------+--------+----------+--------+
339-
| Request | shape | strides | suboffsets | contig | readonly | format |
340-
+===============================+=======+=========+============+========+==========+========+
341-
| .. c:macro:: PyBUF_FULL | yes | yes | if needed | U | 0 | yes |
342-
+-------------------------------+-------+---------+------------+--------+----------+--------+
343-
| .. c:macro:: PyBUF_FULL_RO | yes | yes | if needed | U | 1 or 0 | yes |
344-
+-------------------------------+-------+---------+------------+--------+----------+--------+
345-
| .. c:macro:: PyBUF_RECORDS | yes | yes | NULL | U | 0 | yes |
346-
+-------------------------------+-------+---------+------------+--------+----------+--------+
347-
| .. c:macro:: PyBUF_RECORDS_RO | yes | yes | NULL | U | 1 or 0 | yes |
348-
+-------------------------------+-------+---------+------------+--------+----------+--------+
349-
| .. c:macro:: PyBUF_STRIDED | yes | yes | NULL | U | 0 | NULL |
350-
+-------------------------------+-------+---------+------------+--------+----------+--------+
351-
| .. c:macro:: PyBUF_STRIDED_RO | yes | yes | NULL | U | 1 or 0 | NULL |
352-
+-------------------------------+-------+---------+------------+--------+----------+--------+
353-
| .. c:macro:: PyBUF_CONTIG | yes | NULL | NULL | C | 0 | NULL |
354-
+-------------------------------+-------+---------+------------+--------+----------+--------+
355-
| .. c:macro:: PyBUF_CONTIG_RO | yes | NULL | NULL | C | 1 or 0 | NULL |
356-
+-------------------------------+-------+---------+------------+--------+----------+--------+
379+
.. stable-abi-note::
380+
381+
These values are available when compiling for the
382+
:ref:`Stable ABI <stable>` since version 3.11.
383+
384+
.. omit-stable-abi-notes::
385+
386+
.. list-table::
387+
:align: left
388+
:widths: auto
389+
:header-rows: 1
390+
391+
* - Request
392+
- shape
393+
- strides
394+
- suboffsets
395+
- contig
396+
- readonly
397+
- format
398+
* - .. c:macro:: PyBUF_FULL
399+
- yes
400+
- yes
401+
- if needed
402+
- U
403+
- 0
404+
- yes
405+
* - .. c:macro:: PyBUF_FULL_RO
406+
- yes
407+
- yes
408+
- if needed
409+
- U
410+
- 1 or 0
411+
- yes
412+
* - .. c:macro:: PyBUF_RECORDS
413+
- yes
414+
- yes
415+
- NULL
416+
- U
417+
- 0
418+
- yes
419+
* - .. c:macro:: PyBUF_RECORDS_RO
420+
- yes
421+
- yes
422+
- NULL
423+
- U
424+
- 1 or 0
425+
- yes
426+
* - .. c:macro:: PyBUF_STRIDED
427+
- yes
428+
- yes
429+
- NULL
430+
- U
431+
- 0
432+
- NULL
433+
* - .. c:macro:: PyBUF_STRIDED_RO
434+
- yes
435+
- yes
436+
- NULL
437+
- U
438+
- 1 or 0
439+
- NULL
440+
* - .. c:macro:: PyBUF_CONTIG
441+
- yes
442+
- NULL
443+
- NULL
444+
- C
445+
- 0
446+
- NULL
447+
* - .. c:macro:: PyBUF_CONTIG_RO
448+
- yes
449+
- NULL
450+
- NULL
451+
- C
452+
- 1 or 0
453+
- NULL
357454

358455

359456
Complex arrays

‎Doc/c-api/bytes.rst‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ Variant using a pointer to compute the final size::
488488
489489
char *str = PyBytesWriter_GetData(writer);
490490
memcpy(str, "abc", 3);
491-
str += 1;
491+
str += 3;
492492
return PyBytesWriter_FinishWithPointer(writer, str);
493493
}
494494
@@ -537,7 +537,7 @@ Update ``_PyBytes_Resize()`` code
537537
538538
Example of code using the soft deprecated ``_PyBytes_Resize()`` API::
539539
540-
void create_string(Py_ssize_t size)
540+
PyObject* create_string(Py_ssize_t size)
541541
{
542542
PyObject *bytes = PyBytes_FromStringAndSize(NULL, size);
543543
if (bytes == NULL) {
@@ -555,7 +555,7 @@ Example of code using the soft deprecated ``_PyBytes_Resize()`` API::
555555
556556
It can now be updated to::
557557
558-
void create_string(Py_ssize_t size)
558+
PyObject* create_string(Py_ssize_t size)
559559
{
560560
PyBytesWriter *writer = PyBytesWriter_Create(size);
561561
if (writer == NULL) {

‎Doc/c-api/datetime.rst‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ the module initialisation function. The macro puts a pointer to a C structure
1313
into a static variable, :c:data:`PyDateTimeAPI`, that is used by the following
1414
macros.
1515

16-
.. c:macro:: PyDateTime_IMPORT()
16+
.. c:macro:: PyDateTime_IMPORT
1717
1818
Import the datetime C API.
1919

@@ -51,7 +51,7 @@ macros.
5151
.. versionchanged:: 3.15
5252

5353
This variable should not be accessed directly as direct access is not thread-safe.
54-
Use :c:func:`PyDateTime_IMPORT` instead.
54+
Use :c:macro:`PyDateTime_IMPORT` instead.
5555

5656
.. c:type:: PyDateTime_Date
5757

‎Doc/c-api/function.rst‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ There are a few functions specific to Python functions.
193193
194194
.. versionadded:: 3.12
195195
196-
- ``PyFunction_PYFUNC_EVENT_MODIFY_QUALNAME``
196+
- ``PyFunction_EVENT_MODIFY_QUALNAME``
197197
198198
.. versionadded:: 3.15
199199

‎Doc/c-api/init_config.rst‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,7 @@ Example::
831831
if (PyStatus_Exception(status)) {
832832
Py_ExitStatusException(status);
833833
}
834-
PyMem_Free(ptr);
834+
PyMem_RawFree(ptr);
835835
return 0;
836836
}
837837

‎Doc/c-api/long.rst‎

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -535,17 +535,24 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
535535
536536
.. c:namespace:: NULL
537537
538-
============================================= ======
539-
Flag Value
540-
============================================= ======
541-
.. c:macro:: Py_ASNATIVEBYTES_DEFAULTS ``-1``
542-
.. c:macro:: Py_ASNATIVEBYTES_BIG_ENDIAN ``0``
543-
.. c:macro:: Py_ASNATIVEBYTES_LITTLE_ENDIAN ``1``
544-
.. c:macro:: Py_ASNATIVEBYTES_NATIVE_ENDIAN ``3``
545-
.. c:macro:: Py_ASNATIVEBYTES_UNSIGNED_BUFFER ``4``
546-
.. c:macro:: Py_ASNATIVEBYTES_REJECT_NEGATIVE ``8``
547-
.. c:macro:: Py_ASNATIVEBYTES_ALLOW_INDEX ``16``
548-
============================================= ======
538+
.. stable-abi-note::
539+
540+
These values are available when compiling for the
541+
:ref:`Stable ABI <stable>` since version 3.14.
542+
543+
.. omit-stable-abi-notes::
544+
545+
============================================= ======
546+
Flag Value
547+
============================================= ======
548+
.. c:macro:: Py_ASNATIVEBYTES_DEFAULTS ``-1``
549+
.. c:macro:: Py_ASNATIVEBYTES_BIG_ENDIAN ``0``
550+
.. c:macro:: Py_ASNATIVEBYTES_LITTLE_ENDIAN ``1``
551+
.. c:macro:: Py_ASNATIVEBYTES_NATIVE_ENDIAN ``3``
552+
.. c:macro:: Py_ASNATIVEBYTES_UNSIGNED_BUFFER ``4``
553+
.. c:macro:: Py_ASNATIVEBYTES_REJECT_NEGATIVE ``8``
554+
.. c:macro:: Py_ASNATIVEBYTES_ALLOW_INDEX ``16``
555+
============================================= ======
549556
550557
Specifying ``Py_ASNATIVEBYTES_NATIVE_ENDIAN`` will override any other endian
551558
flags. Passing ``2`` is reserved.

0 commit comments

Comments
 (0)