bpo-38387: Formally document PyDoc_STRVAR and PyDoc_STR macros (GH-16607)
Adds a short description of `PyDoc_STRVAR` and `PyDoc_STR` to "Useful macros" section of C-API docs. Currently, there is [one lone mention](https://docs.python.org/3/c-api/module.html?highlight=pydoc_strvar#c.PyModuleDef) in the C-API reference, despite the fact that `PyDoc_STRVAR` is ubiquitous to `Modules/`. Additionally, this properly uses `c:macro` within `Doc/c-api/module.rst` to link.
This commit is contained in:
parent
a494caa14b
commit
b54e46cb57
|
@ -187,6 +187,39 @@ complete listing.
|
|||
.. versionchanged:: 3.8
|
||||
MSVC support was added.
|
||||
|
||||
.. c:macro:: PyDoc_STRVAR(name, str)
|
||||
|
||||
Creates a variable with name ``name`` that can be used in docstrings.
|
||||
If Python is built without docstrings, the value will be empty.
|
||||
|
||||
Use :c:macro:`PyDoc_STRVAR` for docstrings to support building
|
||||
Python without docstrings, as specified in :pep:`7`.
|
||||
|
||||
Example::
|
||||
|
||||
PyDoc_STRVAR(pop_doc, "Remove and return the rightmost element.");
|
||||
|
||||
static PyMethodDef deque_methods[] = {
|
||||
// ...
|
||||
{"pop", (PyCFunction)deque_pop, METH_NOARGS, pop_doc},
|
||||
// ...
|
||||
}
|
||||
|
||||
.. c:macro:: PyDoc_STR(str)
|
||||
|
||||
Creates a docstring for the given input string or an empty string
|
||||
if docstrings are disabled.
|
||||
|
||||
Use :c:macro:`PyDoc_STR` in specifying docstrings to support
|
||||
building Python without docstrings, as specified in :pep:`7`.
|
||||
|
||||
Example::
|
||||
|
||||
static PyMethodDef pysqlite_row_methods[] = {
|
||||
{"keys", (PyCFunction)pysqlite_row_keys, METH_NOARGS,
|
||||
PyDoc_STR("Returns the keys of the row.")},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
.. _api-objects:
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ or request "multi-phase initialization" by returning the definition struct itsel
|
|||
.. c:member:: const char *m_doc
|
||||
|
||||
Docstring for the module; usually a docstring variable created with
|
||||
:c:func:`PyDoc_STRVAR` is used.
|
||||
:c:macro:`PyDoc_STRVAR` is used.
|
||||
|
||||
.. c:member:: Py_ssize_t m_size
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Document :c:macro:`PyDoc_STRVAR` macro in the C-API reference.
|
Loading…
Reference in New Issue