Merge pull request #313 from 16bit-ykiko/rename-module

rename `module` to `module_`.
This commit is contained in:
BLUELOVETH 2024-10-04 19:27:50 +08:00 committed by GitHub
commit d7607ce398
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4,60 +4,60 @@
namespace pkbind { namespace pkbind {
class module : public object { class module_ : public object {
PKBIND_TYPE_IMPL(object, module, tp_module) PKBIND_TYPE_IMPL(object, module_, tp_module)
static module __main__() { return module(py_getmodule("__main__"), object::ref_t{}); } static module_ __main__() { return module_(py_getmodule("__main__"), object::ref_t{}); }
static module import(const char* name) { static module_ import(const char* name) {
raise_call<py_import>(name); raise_call<py_import>(name);
return borrow<module>(py_retval()); return borrow<module_>(py_retval());
} }
static module create(const char* name) { static module_ create(const char* name) {
auto m = py_newmodule(name); auto m = py_newmodule(name);
return steal<module>(m); return steal<module_>(m);
} }
module def_submodule(const char* name, const char* doc = nullptr) { module_ def_submodule(const char* name, const char* doc = nullptr) {
// auto package = (attr("__package__").cast<std::string>() += ".") += // auto package = (attr("__package__").cast<std::string>() += ".") +=
// attr("__name__").cast<std::string_view>(); // attr("__name__").cast<std::string_view>();
auto fname = (attr("__name__").cast<std::string>() += ".") += name; auto fname = (attr("__name__").cast<std::string>() += ".") += name;
auto m = py_newmodule(fname.c_str()); auto m = py_newmodule(fname.c_str());
setattr(*this, name, m); setattr(*this, name, m);
return module(m, object::ref_t{}); return module_(m, object::ref_t{});
} }
template <typename Fn, typename... Extras> template <typename Fn, typename... Extras>
module& def(const char* name, Fn&& fn, const Extras... extras) { module_& def(const char* name, Fn&& fn, const Extras... extras) {
impl::bind_function<false, false>(*this, name, std::forward<Fn>(fn), extras...); impl::bind_function<false, false>(*this, name, std::forward<Fn>(fn), extras...);
return *this; return *this;
} }
}; };
using module_ = module; using module = module_;
#define PYBIND11_EMBEDDED_MODULE(name, variable) \ #define PYBIND11_EMBEDDED_MODULE(name, variable) \
static void _pkbind_register_##name(::pkbind::module& variable); \ static void _pkbind_register_##name(::pkbind::module_& variable); \
namespace pkbind::impl { \ namespace pkbind::impl { \
auto _module_##name = [] { \ auto _module_##name = [] { \
::pkbind::action::register_start([] { \ ::pkbind::action::register_start([] { \
auto m = ::pkbind::module(py_newmodule(#name), ::pkbind::object::ref_t{}); \ auto m = ::pkbind::module_::create(#name); \
_pkbind_register_##name(m); \ _pkbind_register_##name(m); \
}); \ }); \
return 1; \ return 1; \
}(); \ }(); \
} \ } \
static void _pkbind_register_##name(::pkbind::module& variable) static void _pkbind_register_##name(::pkbind::module_& variable)
#define PYBIND11_MODULE(name, variable) \ #define PYBIND11_MODULE(name, variable) \
static void _pkbind_register_##name(::pkbind::module& variable); \ static void _pkbind_register_##name(::pkbind::module_& variable); \
extern "C" PK_EXPORT bool py_module_initialize() { \ extern "C" PK_EXPORT bool py_module_initialize() { \
auto m = ::pkbind::module::create(#name); \ auto m = ::pkbind::module_::create(#name); \
_pkbind_register_##name(m); \ _pkbind_register_##name(m); \
py_assign(py_retval(), m.ptr()); \ py_assign(py_retval(), m.ptr()); \
return true; \ return true; \
} \ } \
static void _pkbind_register_##name(::pkbind::module& variable) static void _pkbind_register_##name(::pkbind::module_& variable)
} // namespace pkbind } // namespace pkbind