Skip to content

[3.12] gh-121615: Improve module.rst C-API docs with better error descriptions (GH-121616) #121619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions Doc/c-api/module.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ Module Objects
to ``None``); the caller is responsible for providing a :attr:`__file__`
attribute.

Return ``NULL`` with an exception set on error.

.. versionadded:: 3.3

.. versionchanged:: 3.4
Expand Down Expand Up @@ -265,6 +267,8 @@ of the following two module creation functions:
API version *module_api_version*. If that version does not match the version
of the running interpreter, a :exc:`RuntimeWarning` is emitted.

Return ``NULL`` with an exception set on error.

.. note::

Most uses of this function should be using :c:func:`PyModule_Create`
Expand Down Expand Up @@ -436,6 +440,8 @@ objects dynamically. Note that both ``PyModule_FromDefAndSpec`` and
If that version does not match the version of the running interpreter,
a :exc:`RuntimeWarning` is emitted.

Return ``NULL`` with an exception set on error.

.. note::

Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec`
Expand Down Expand Up @@ -579,23 +585,24 @@ state:
.. c:function:: int PyModule_AddIntConstant(PyObject *module, const char *name, long value)

Add an integer constant to *module* as *name*. This convenience function can be
used from the module's initialization function. Return ``-1`` on error, ``0`` on
success.
used from the module's initialization function.
Return ``-1`` with an exception set on error, ``0`` on success.


.. c:function:: int PyModule_AddStringConstant(PyObject *module, const char *name, const char *value)

Add a string constant to *module* as *name*. This convenience function can be
used from the module's initialization function. The string *value* must be
``NULL``-terminated. Return ``-1`` on error, ``0`` on success.
``NULL``-terminated.
Return ``-1`` with an exception set on error, ``0`` on success.


.. c:macro:: PyModule_AddIntMacro(module, macro)

Add an int constant to *module*. The name and the value are taken from
*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int
constant *AF_INET* with the value of *AF_INET* to *module*.
Return ``-1`` on error, ``0`` on success.
Return ``-1`` with an exception set on error, ``0`` on success.


.. c:macro:: PyModule_AddStringMacro(module, macro)
Expand All @@ -608,7 +615,7 @@ state:
The type object is finalized by calling internally :c:func:`PyType_Ready`.
The name of the type object is taken from the last component of
:c:member:`~PyTypeObject.tp_name` after dot.
Return ``-1`` on error, ``0`` on success.
Return ``-1`` with an exception set on error, ``0`` on success.

.. versionadded:: 3.9

Expand Down Expand Up @@ -647,14 +654,14 @@ since multiple such modules can be created from a single definition.

The caller must hold the GIL.

Return 0 on success or -1 on failure.
Return ``-1`` with an exception set on error, ``0`` on success.

.. versionadded:: 3.3

.. c:function:: int PyState_RemoveModule(PyModuleDef *def)

Removes the module object created from *def* from the interpreter state.
Return 0 on success or -1 on failure.
Return ``-1`` with an exception set on error, ``0`` on success.

The caller must hold the GIL.

Expand Down
Loading