From 74b8e76ec1d85feacaa5e96b60a9c7f21026508f Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Tue, 22 Jan 2008 15:25:18 +0000 Subject: [PATCH] Don't repeat yourself Added the macros PyModule_AddIntMacro and PyModule_AddStringMacro. They shorten PyModule_AddIntConstant(m, "AF_INET", AF_INET) to PyModule_AddIntMacro(m, AF_INET) --- Doc/c-api/module.rst | 20 ++++++++++++++++++-- Include/modsupport.h | 3 ++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index 064c3656304..4008d1a43c0 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -18,7 +18,7 @@ There are only a few functions special to module objects. is exposed to Python programs as ``types.ModuleType``. -.. cfunction:: int PyModule_Check(PyObject *p) +.. cmacro:: int PyModule_Check(PyObject *p) Return true if *p* is a module object, or a subtype of a module object. @@ -26,7 +26,7 @@ There are only a few functions special to module objects. Allowed subtypes to be accepted. -.. cfunction:: int PyModule_CheckExact(PyObject *p) +.. cmacro:: int PyModule_CheckExact(PyObject *p) Return true if *p* is a module object, but not a subtype of :cdata:`PyModule_Type`. @@ -103,3 +103,19 @@ There are only a few functions special to module objects. null-terminated. Return ``-1`` on error, ``0`` on success. .. versionadded:: 2.0 + +.. cmacro:: int PyModule_AddIntMacro(PyObject *module, macro) + + Add an int constant to *module*. The name and the value are taken from + *macro*. For example ``PyModule_AddConstant(module, AF_INET)`` adds the int + constant *AF_INET* with the value of *AF_INET* to *module*. + Return ``-1`` on error, ``0`` on success. + + .. versionadded:: 2.6 + +.. cmacro:: int PyModule_AddStringMacro(PyObject *module, macro) + + Add a string constant to *module*. + + .. versionadded:: 2.6 + diff --git a/Include/modsupport.h b/Include/modsupport.h index 761d9609917..d4dddef0b59 100644 --- a/Include/modsupport.h +++ b/Include/modsupport.h @@ -40,7 +40,8 @@ PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); PyAPI_FUNC(int) PyModule_AddObject(PyObject *, const char *, PyObject *); PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long); PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *); - +#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c) +#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c) #define PYTHON_API_VERSION 1013 #define PYTHON_API_STRING "1013"