mirror of
https://github.com/python/cpython.git
synced 2025-10-31 21:51:50 +00:00
Andrew Kuchling <akuchlin@mems-exchange.org>:
Add three new convenience functions to the PyModule_*() family: PyModule_AddObject(), PyModule_AddIntConstant(), PyModule_AddStringConstant(). This closes SourceForge patch #101233.
This commit is contained in:
parent
f84fb660cb
commit
9e2851566c
2 changed files with 31 additions and 0 deletions
|
|
@ -18,6 +18,10 @@ extern DL_IMPORT(PyObject *) Py_BuildValue(char *, ...);
|
||||||
extern DL_IMPORT(int) PyArg_VaParse(PyObject *, char *, va_list);
|
extern DL_IMPORT(int) PyArg_VaParse(PyObject *, char *, va_list);
|
||||||
extern DL_IMPORT(PyObject *) Py_VaBuildValue(char *, va_list);
|
extern DL_IMPORT(PyObject *) Py_VaBuildValue(char *, va_list);
|
||||||
|
|
||||||
|
extern DL_IMPORT(int) PyModule_AddObject(PyObject *, char *, PyObject *);
|
||||||
|
extern DL_IMPORT(int) PyModule_AddIntConstant(PyObject *, char *, long);
|
||||||
|
extern DL_IMPORT(int) PyModule_AddStringConstant(PyObject *, char *, char *);
|
||||||
|
|
||||||
#define PYTHON_API_VERSION 1009
|
#define PYTHON_API_VERSION 1009
|
||||||
#define PYTHON_API_STRING "1009"
|
#define PYTHON_API_STRING "1009"
|
||||||
/* The API version is maintained (independently from the Python version)
|
/* The API version is maintained (independently from the Python version)
|
||||||
|
|
|
||||||
|
|
@ -459,3 +459,30 @@ PyEval_CallMethod(PyObject *obj, char *methodname, char *format, ...)
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
PyModule_AddObject(PyObject *m, char *name, PyObject *o)
|
||||||
|
{
|
||||||
|
PyObject *dict;
|
||||||
|
if (!PyModule_Check(m) || o == NULL)
|
||||||
|
return -1;
|
||||||
|
dict = PyModule_GetDict(m);
|
||||||
|
if (dict == NULL)
|
||||||
|
return -1;
|
||||||
|
if (PyDict_SetItemString(dict, name, o))
|
||||||
|
return -1;
|
||||||
|
Py_DECREF(o);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
PyModule_AddIntConstant(PyObject *m, char *name, long value)
|
||||||
|
{
|
||||||
|
return PyModule_AddObject(m, name, PyInt_FromLong(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
PyModule_AddStringConstant(PyObject *m, char *name, char *value)
|
||||||
|
{
|
||||||
|
return PyModule_AddObject(m, name, PyString_FromString(value));
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue