feat: deprecate public constructors of module_ class (#2552)

* Deprecated public constructors of module

* Turn documentation comment of module_::add_object into valid doxygen documentation

* Move definition of PYBIND11_DETAIL_MODULE_STATIC_DEF and PYBIND11_DETAIL_MODULE_CREATE macros up

* Move detail::create_top_level_module to module_::create_extension_module, and unify Python 2 and 3 signature again

* Throw error_already_set if module creation fails in module_::create_extension_module

* Mention module_::create_extension_module in deprecation warning message of module_::module_
This commit is contained in:
Yannick Jadoul
2020-10-09 16:46:11 +02:00
committed by GitHub
parent 71aea49b8b
commit 0c5cc031ee
5 changed files with 74 additions and 76 deletions

View File

@@ -62,7 +62,8 @@ TEST_SUBMODULE(modules, m) {
class Dupe3 { };
class DupeException { };
auto dm = py::module_("dummy");
// Go ahead and leak, until we have a non-leaking py::module_ constructor
auto dm = py::module_::create_extension_module("dummy", nullptr, new py::module_::module_def);
auto failures = py::list();
py::class_<Dupe1>(dm, "Dupe1");