diff options
author | Andrew Svetlov <andrew.svetlov@gmail.com> | 2012-12-14 15:04:59 (GMT) |
---|---|---|
committer | Andrew Svetlov <andrew.svetlov@gmail.com> | 2012-12-14 15:04:59 (GMT) |
commit | 6b2cbeba58aeb0755bdefd02fb51a80ec66d6144 (patch) | |
tree | 2634f036965fc3ebf737ef3ce1b830437de9a04f /Modules | |
parent | f76f0eea5c00ea20ac62d9a8437a19f23fd455c5 (diff) | |
download | cpython-6b2cbeba58aeb0755bdefd02fb51a80ec66d6144.zip cpython-6b2cbeba58aeb0755bdefd02fb51a80ec66d6144.tar.gz cpython-6b2cbeba58aeb0755bdefd02fb51a80ec66d6144.tar.bz2 |
Issue #16421: allow to load multiple modules from the same shared object.
Patch by Václav Šmilauer.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_testimportmultiple.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Modules/_testimportmultiple.c b/Modules/_testimportmultiple.c new file mode 100644 index 0000000..baad29d --- /dev/null +++ b/Modules/_testimportmultiple.c @@ -0,0 +1,57 @@ +/* + * C extensions module to test importing multiple modules from one compiled + * file (issue16421). This file defines 3 modules (_testimportmodule, + * foo, bar), only the first one is called the same as the compiled file. + */ +#include<Python.h> + +static struct PyModuleDef _testimportmultiple = { + PyModuleDef_HEAD_INIT, + "_testimportmultiple", + "_testimportmultiple doc", + -1, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC PyInit__testimportmultiple() +{ + return PyModule_Create(&_testimportmultiple); +} + +static struct PyModuleDef _foomodule = { + PyModuleDef_HEAD_INIT, + "foo", + "foo doc", + -1, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC PyInit_foo() +{ + return PyModule_Create(&_foomodule); +} + +static struct PyModuleDef _barmodule = { + PyModuleDef_HEAD_INIT, + "bar", + "bar doc", + -1, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC PyInit_bar(){ + return PyModule_Create(&_barmodule); +} + |