Commit Graph

1497 Commits

Author SHA1 Message Date
Anthony Shaw be551a7d0e Add a version added note for PY_VECTORCALL_ARGUMENTS_OFFSET (#110963) 2023-10-23 19:00:52 +03:00
Victor Stinner f1e751e933 gh-111089: PyUnicode_AsUTF8AndSize() sets size on error (#111106)
On error, PyUnicode_AsUTF8AndSize() now sets the size argument to -1,
to avoid undefined value.
2023-10-20 20:03:11 +02:00
Victor Stinner d731579bfb gh-111089: PyUnicode_AsUTF8() now raises on embedded NUL (#111091)
* PyUnicode_AsUTF8() now raises an exception if the string contains
  embedded null characters.
* Update related C API tests (test_capi.test_unicode).
* type_new_set_doc() uses PyUnicode_AsUTF8AndSize() to silently
  truncate doc containing null bytes.

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-10-20 17:59:29 +02:00
Mienxiu f07ca27709 C-API docs: Clarify the size of arenas (#110895)
Clarify the size of arenas

From 3.10.0 alpha 7, the pymalloc allocator uses arenas with a fixed size of 1
MiB on 64-bit platforms instead of 256 KiB on 32-bit platforms.
2023-10-16 19:52:13 +01:00
Nikita Sobolev bfc1cd8145 gh-110527: Improve PySet_Clear docs (#110528) 2023-10-16 15:05:09 +02:00
Łukasz Langa 84b7e9e3fa gh-110722: Add PYTHON_PRESITE to import a module before site.py is run (#110769) 2023-10-14 23:32:57 +02:00
Serhiy Storchaka 7284e0ef84 gh-110815: Support non-ASCII keyword names in PyArg_ParseTupleAndKeywords() (GH-110816)
It already mostly worked, except in the case when invalid keyword
argument with non-ASCII name was passed to function with non-ASCII
parameter names. Then it crashed in the debug mode.
2023-10-14 08:50:03 +03:00
Petr Viktorin 2ab34f0e42 gh-110803: Reorganize docs for what PyType_Slot doesn't cover (GH-110813)
* gh-110803: Reorganize docs for what PyType_Slot doesn't cover

- Cover the offset fields first
- Mention the old alternative for MANAGED flags, which is needed
  to support older Pythons
- De-emphasize the internal flags: use an inline list.
- Add a note to PyMemberDef saying what to do with it

* Remove an older draft...
2023-10-13 14:51:48 +02:00
Ezio Melotti 718391f475 gh-110631: Fix reST indentation (#110724)
* Fix wrong indentation in the other dirs.

* Fix more wrong indentation.
2023-10-11 22:43:03 +02:00
Serhiy Storchaka eb50cd37ea gh-110289: C API: Add PyUnicode_EqualToUTF8() and PyUnicode_EqualToUTF8AndSize() functions (GH-110297) 2023-10-11 16:41:58 +03:00
Donghee Na 0362cbf908 gh-109595: Add -Xcpu_count=<n> cmdline for container users (#109667)
---------

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Gregory P. Smith [Google LLC] <greg@krypto.org>
2023-10-10 19:00:09 +09:00
Victor Stinner bb057b3370 gh-85283: Add PySys_AuditTuple() function (#108965)
sys.audit() now has assertions to check that the event argument is
not NULL and that the format argument does not use the "N" format.

Add tests on PySys_AuditTuple().
2023-10-05 21:59:35 +00:00
Victor Stinner d73501602f gh-108867: Add PyThreadState_GetUnchecked() function (#108870)
Add PyThreadState_GetUnchecked() function: similar to
PyThreadState_Get(), but don't issue a fatal error if it is NULL. The
caller is responsible to check if the result is NULL. Previously,
this function was private and known as _PyThreadState_UncheckedGet().
2023-10-03 16:53:51 +00:00
Victor Stinner fc2cb86d21 gh-107073: Make PyObject_VisitManagedDict() public (#108763)
Make PyObject_VisitManagedDict() and PyObject_ClearManagedDict()
functions public in Python 3.13 C API.

* Rename _PyObject_VisitManagedDict() to PyObject_VisitManagedDict().
* Rename _PyObject_ClearManagedDict() to PyObject_ClearManagedDict().
* Document these functions.
2023-10-02 19:24:08 +02:00
Heinz-Alexander Fuetterer ef6d475db3 Fix typos in docs and comments (#109619) 2023-09-20 16:58:23 +00:00
Serhiy Storchaka add16f1a5e gh-108511: Add C API functions which do not silently ignore errors (GH-109025)
Add the following functions:

* PyObject_HasAttrWithError()
* PyObject_HasAttrStringWithError()
* PyMapping_HasKeyWithError()
* PyMapping_HasKeyStringWithError()
2023-09-17 14:23:31 +03:00
Victor Stinner d7a27e527d gh-107298: Document PyMODINIT_FUNC macro (#109236)
Document PyMODINIT_FUNC macro.

Remove links to PyAPI_FUNC() and PyAPI_DATA() macros since they are
not documented. These macros should only be used to define the Python
C API. They should not be used outside Python code base.
2023-09-14 14:56:43 +02:00
Serhiy Storchaka 6f97eeec22 Improve some C API documentation (GH-108768)
* Express functions which take argument as a C string in terms of
  functions which take Python object.
* Use "note" directive for PyMapping_HasKey() and
  PyMapping_HasKeyString() notes.
2023-09-01 22:21:39 +03:00
Victor Stinner 13a00078b8 gh-108634: Py_TRACE_REFS uses a hash table (#108663)
Python built with "configure --with-trace-refs" (tracing references)
is now ABI compatible with Python release build and debug build.
Moreover, it now also supports the Limited API.

Change Py_TRACE_REFS build:

* Remove _PyObject_EXTRA_INIT macro.
* The PyObject structure no longer has two extra members (_ob_prev
  and _ob_next).
* Use a hash table (_Py_hashtable_t) to trace references (all
  objects): PyInterpreterState.object_state.refchain.
* Py_TRACE_REFS build is now ABI compatible with release build and
  debug build.
* Limited C API extensions can now be built with Py_TRACE_REFS:
  xxlimited, xxlimited_35, _testclinic_limited.
* No longer rename PyModule_Create2() and PyModule_FromDefAndSpec2()
  functions to PyModule_Create2TraceRefs() and
  PyModule_FromDefAndSpec2TraceRefs().
* _Py_PrintReferenceAddresses() is now called before
  finalize_interp_delete() which deletes the refchain hash table.
* test_tracemalloc find_trace() now also filters by size to ignore
  the memory allocated by _PyRefchain_Trace().

Test changes for Py_TRACE_REFS:

* Add test.support.Py_TRACE_REFS constant.
* Add test_sys.test_getobjects() to test sys.getobjects() function.
* test_exceptions skips test_recursion_normalizing_with_no_memory()
  and test_memory_error_in_PyErr_PrintEx() if Python is built with
  Py_TRACE_REFS.
* test_repl skips test_no_memory().
* test_capi skisp test_set_nomemory().
2023-08-31 18:33:34 +02:00
xzmeng 88f1c5b454 Fix misc doc typos (#108592) 2023-08-29 00:14:21 +00:00
Victor Stinner be436e08b8 gh-108444: Add PyLong_AsInt() public function (#108445)
* Rename _PyLong_AsInt() to PyLong_AsInt().
* Add documentation.
* Add test.
* For now, keep _PyLong_AsInt() as an alias to PyLong_AsInt().
2023-08-24 23:55:30 +02:00
Victor Stinner 6726626646 gh-108314: Add PyDict_ContainsString() function (#108323) 2023-08-24 15:59:12 +02:00
Serhiy Storchaka 422f81b5d2 gh-107298: Fix a few more refs in the C API docs (GH-108361)
gh-107298: Fix few more refs in the C API docs
2023-08-23 20:12:42 +03:00
Serhiy Storchaka d7202e4879 gh-107298: Fix numerous ref errors and typos in the C API docs (GH-108258) 2023-08-22 15:50:30 +03:00
Serhiy Storchaka d63972e289 gh-107298: Fix C API datetime documentation (GH-108034) 2023-08-21 21:15:46 +03:00
Victor Stinner 3ff5ef2ad3 gh-108014: Add Py_IsFinalizing() function (#108032)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-08-18 12:34:41 +02:00
Serhiy Storchaka f51f0466c0 gh-107298: Fix some references in the C API documentation (GH-108072) 2023-08-17 11:16:00 +03:00
Victor Stinner c2941cba7a gh-107298: Fix C API Buffer documentation (#108011) 2023-08-16 18:24:46 +02:00
Carl Meyer 66e4edd734 gh-91051: fix segfault when using all 8 type watchers (#107853) 2023-08-11 12:42:26 -06:00
Erlend E. Aasland 637f7ff2c6 Docs: Document PyBUF_MAX_NDIM (#107865) 2023-08-11 18:03:53 +02:00
Eric Snow 5dc825d504 gh-98154: Clarify Usage of "Reference Count" In the Docs (gh-107552)
PEP 683 (immortal objects) revealed some ways in which the Python documentation has been unnecessarily coupled to the implementation details of reference counts.  In the end users should focus on reference ownership, including taking references and releasing them, rather than on how many reference counts an object has.

This change updates the documentation to reflect that perspective.  It also updates the docs relative to immortal objects in a handful of places.
2023-08-07 15:40:59 -06:00
Eric Snow db361a340a gh-105766: Document that Custom Allocators Must Be Thread-Safe (gh-107519) 2023-07-31 23:11:15 +00:00
Eric Snow fb344e99aa gh-107306: Add a Doc Entry for Py_mod_multiple_interpreters (#107403)
It was added in 3.12 for PEP 684 (per-interpreter GIL).
2023-07-31 17:03:01 -06:00
da-woods f2abeb590d Fix the documentation for PyCode_New add qualname parameter (#107186) 2023-07-29 23:11:40 +05:30
Serhiy Storchaka f2d07d3289 gh-101100: Sphinx warnings: pick the low hanging fruits (GH-107386) 2023-07-29 08:48:10 +03:00
Eric Snow c0b81c4b54 gh-107305: Update the C-API Docs for PEP 684 (gh-107324) 2023-07-28 13:46:55 -06:00
Serhiy Storchaka 983305268e gh-107298: Fix yet more Sphinx warnings in the C API doc (GH-107345) 2023-07-27 18:44:32 +03:00
Serhiy Storchaka abec9a1b20 gh-107298: Docs: add targets for some :c:member: and :c:macro: references (GH-107316)
Add targets for PyStructSequence_Desc and PyStructSequence_Field members
and macros like Py_EQ.
Fix target for Py_RETURN_RICHCOMPARE.
2023-07-27 09:04:02 +03:00
Serhiy Storchaka d363eb5b02 gh-107091: Fix some uses of :attr: role (GH-107318)
Fix also formatting of PyMethodDef members.
2023-07-27 08:52:54 +03:00
Victor Stinner 8d61a71f9c gh-107298: Fix more Sphinx warnings in the C API doc (#107329)
Declare the following functions as macros, since they are actually
macros. It avoids a warning on "TYPE" or "macro" argument.

* PyMem_New()
* PyMem_Resize()
* PyModule_AddIntMacro()
* PyModule_AddStringMacro()
* PyObject_GC_New()
* PyObject_GC_NewVar()
* PyObject_New()
* PyObject_NewVar()

Add C standard C types to nitpick_ignore in Doc/conf.py:

* int64_t
* uint64_t
* uintptr_t

No longer ignore non existing "__int" type in nitpick_ignore.

Update Doc/tools/.nitignore
2023-07-27 00:52:40 +00:00
Victor Stinner 391e03fa05 gh-107298: Fix Sphinx warnings in the C API doc (#107302)
* Update Doc/tools/.nitignore
* Fix BufferedIOBase.write() link in buffer.rst
2023-07-27 01:41:15 +02:00
Serhiy Storchaka 6d5b6e71c8 gh-107091: Fix some uses of :c:type: role (GH-107138) 2023-07-26 22:29:23 +03:00
Serhiy Storchaka af61cb9c78 gh-107091: Fix some uses of :c:member: role (GH-107129) 2023-07-26 22:16:06 +03:00
Victor Stinner 87b39028e5 gh-107298: Fix doc references to undocumented modules (#107300)
Update also Doc/tools/.nitignore.
2023-07-26 18:59:06 +02:00
da-woods 0a9b339363 Fix PyVectorcall_Function doc versionadded (#107140)
The documentation implies that PyVectorcall_Function() was available in Python 3.8.
This is half-true - it was available under a different name. I think it's clearer to set
the "version added" to 3.9.
2023-07-24 14:54:38 +02:00
Erlend E. Aasland b447e19e72 gh-106948: Docs: Disable links for C standard library functions, OS utility functions and system calls (#107062)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-07-23 22:56:56 +02:00
Serhiy Storchaka 08a228da05 gh-107091: Fix the use of some C domain roles (#107092) 2023-07-23 12:27:05 +02:00
wulmer f5147c0cfb gh-101100: Fix some broken sphinx references (#107095) 2023-07-23 03:23:44 -06:00
Serhiy Storchaka f8b7fe2f26 gh-106948: Add standard external names to nitpick_ignore (GH-106949)
It includes standard C types, macros and variables like "size_t",
"LONG_MAX" and "errno", and standard environment variables like "PATH".
2023-07-22 21:35:22 +03:00
Victor Stinner 41ca164551 gh-106004: Add PyDict_GetItemRef() function (#106005)
* Add PyDict_GetItemRef() and PyDict_GetItemStringRef() functions.
  Add these functions to the stable ABI version 3.13.
* Add unit tests on the PyDict C API in test_capi.
2023-07-21 23:10:51 +02:00