μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
module_ Class Reference

Wrapper for Python extension modules. More...

#include </builds/ipbus/ipbus-software/uhal/python/pybind11-python2/include/pybind11/pybind11.h>

Inheritance diagram for module_:
[legend]
Collaboration diagram for module_:
[legend]

Classes

struct  module_def
 

Public Types

using module_def = PyModuleDef
 

Public Member Functions

 module_ (const char *name, const char *doc=nullptr)
 Create a new top-level Python module with the given name and docstring. More...
 
template<typename Func , typename... Extra>
module_def (const char *name_, Func &&f, const Extra &...extra)
 \rst Create Python binding for a new function within the module scope. More...
 
module_ def_submodule (const char *name, const char *doc=nullptr)
 \rst Create and return a new Python submodule with the given name and docstring. More...
 
void reload ()
 Reload the module or throws error_already_set. More...
 
PYBIND11_NOINLINE void add_object (const char *name, handle obj, bool overwrite=false)
 \rst Adds an object to the module using the given name. More...
 
 module_ (const char *name, const char *doc=nullptr)
 Create a new top-level Python module with the given name and docstring. More...
 
template<typename Func , typename... Extra>
module_def (const char *name_, Func &&f, const Extra &...extra)
 \rst Create Python binding for a new function within the module scope. More...
 
module_ def_submodule (const char *name, const char *doc=nullptr)
 \rst Create and return a new Python submodule with the given name and docstring. More...
 
void reload ()
 Reload the module or throws error_already_set. More...
 
PYBIND11_NOINLINE void add_object (const char *name, handle obj, bool overwrite=false)
 \rst Adds an object to the module using the given name. More...
 
- Public Member Functions inherited from object
 object ()=default
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
handle release ()
 \rst Resets the internal pointer to nullptr without decreasing the object's reference count. More...
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
 object ()=default
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
handle release ()
 \rst Resets the internal pointer to nullptr without decreasing the object's reference count. More...
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
template<>
void cast () const &
 
template<>
void cast () &&
 
- Public Member Functions inherited from handle
 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
 handle (PyObject *ptr)
 Creates a handle from the given raw Python object pointer. More...
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 \rst Manually increase the reference count of the Python object. More...
 
const handledec_ref () const &
 \rst Manually decrease the reference count of the Python object. More...
 
template<typename T >
cast () const
 \rst Attempt to cast the Python object into the given C++ type. More...
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator== (const handle &h) const
 \rst Deprecated: Check that the underlying pointers are the same. More...
 
bool operator!= (const handle &h) const
 
bool check () const
 
 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
template<typename T , detail::enable_if_t< detail::is_pyobj_ptr_or_nullptr_t< T >::value, int > = 0>
 handle (T ptr)
 Enable implicit conversion from PyObject * and nullptr. More...
 
template<typename T , detail::enable_if_t< detail::all_of< detail::none_of< std::is_base_of< handle, T >, detail::is_pyobj_ptr_or_nullptr_t< T > >, std::is_convertible< T, PyObject * > >::value, int > = 0>
 handle (T &obj)
 Enable implicit conversion through T::operator PyObject *(). More...
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 \rst Manually increase the reference count of the Python object. More...
 
const handledec_ref () const &
 \rst Manually decrease the reference count of the Python object. More...
 
template<typename T >
cast () const
 \rst Attempt to cast the Python object into the given C++ type. More...
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator== (const handle &h) const
 \rst Deprecated: Check that the underlying pointers are the same. More...
 
bool operator!= (const handle &h) const
 
bool check () const
 
template<>
void cast () const
 

Static Public Member Functions

static module_ import (const char *name)
 Import and return a module or throws error_already_set. More...
 
static module_ create_extension_module (const char *name, const char *doc, module_def *def)
 \rst Create a new top-level module that can be used as the main module of a C extension. More...
 
static module_ import (const char *name)
 Import and return a module or throws error_already_set. More...
 
static module_ create_extension_module (const char *name, const char *doc, module_def *def)
 \rst Create a new top-level module that can be used as the main module of a C extension. More...
 
- Static Public Member Functions inherited from handle
static std::size_t inc_ref_counter ()
 

Additional Inherited Members

- Public Attributes inherited from object
bool is_borrowed: handle(h) { if (is_borrowed) { inc_ref()
 
- Protected Attributes inherited from handle
PyObject * m_ptr = nullptr
 

Detailed Description

Wrapper for Python extension modules.

Definition at line 1145 of file pybind11.h.

Member Typedef Documentation

◆ module_def

using module_::module_def = PyModuleDef

Definition at line 1238 of file pybind11.h.

Constructor & Destructor Documentation

◆ module_() [1/2]

module_::module_ ( const char *  name,
const char *  doc = nullptr 
)
inlineexplicit

Create a new top-level Python module with the given name and docstring.

Definition at line 1151 of file pybind11.h.

References create_extension_module().

◆ module_() [2/2]

module_::module_ ( const char *  name,
const char *  doc = nullptr 
)
inlineexplicit

Create a new top-level Python module with the given name and docstring.

Definition at line 1152 of file pybind11.h.

References create_extension_module().

Member Function Documentation

◆ add_object() [1/2]

PYBIND11_NOINLINE void module_::add_object ( const char *  name,
handle  obj,
bool  overwrite = false 
)
inline

\rst Adds an object to the module using the given name.

Throws if an object with the given name already exists.

overwrite should almost always be false: attempting to overwrite objects that pybind11 has established will, in most cases, break things. \endrst

Definition at line 1224 of file pybind11.h.

References hasattr(), handle::inc_ref(), handle::ptr(), and pybind11_fail().

Referenced by def().

◆ add_object() [2/2]

PYBIND11_NOINLINE void module_::add_object ( const char *  name,
handle  obj,
bool  overwrite = false 
)
inline

\rst Adds an object to the module using the given name.

Throws if an object with the given name already exists.

overwrite should almost always be false: attempting to overwrite objects that pybind11 has established will, in most cases, break things. \endrst

Definition at line 1228 of file pybind11.h.

References hasattr(), handle::inc_ref(), handle::ptr(), and pybind11_fail().

◆ create_extension_module() [1/2]

static module_ module_::create_extension_module ( const char *  name,
const char *  doc,
module_def def 
)
inlinestatic

\rst Create a new top-level module that can be used as the main module of a C extension.

For Python 3, def should point to a statically allocated module_def. For Python 2, def can be a nullptr and is completely ignored. \endrst

Definition at line 1246 of file pybind11.h.

References def(), pybind11_fail(), and options::show_user_defined_docstrings().

Referenced by module_().

◆ create_extension_module() [2/2]

static module_ module_::create_extension_module ( const char *  name,
const char *  doc,
module_def def 
)
inlinestatic

\rst Create a new top-level module that can be used as the main module of a C extension.

def should point to a statically allocated module_def. \endrst

Definition at line 1245 of file pybind11.h.

References def(), pybind11_fail(), and options::show_user_defined_docstrings().

◆ def() [1/2]

template<typename Func , typename... Extra>
module_ & module_::def ( const char *  name_,
Func &&  f,
const Extra &...  extra 
)
inline

\rst Create Python binding for a new function within the module scope.

Func can be a plain C++ function, a function pointer, or a lambda function. For details on the Extra&& ... extra argument, see section :ref:extras. \endrst

Definition at line 1165 of file pybind11.h.

References add_object(), and getattr().

Referenced by create_extension_module().

◆ def() [2/2]

template<typename Func , typename... Extra>
module_ & module_::def ( const char *  name_,
Func &&  f,
const Extra &...  extra 
)
inline

\rst Create Python binding for a new function within the module scope.

Func can be a plain C++ function, a function pointer, or a lambda function. For details on the Extra&& ... extra argument, see section :ref:extras. \endrst

Definition at line 1162 of file pybind11.h.

References add_object(), and getattr().

◆ def_submodule() [1/2]

module_ module_::def_submodule ( const char *  name,
const char *  doc = nullptr 
)
inline

\rst Create and return a new Python submodule with the given name and docstring.

This also works recursively, i.e.

.. code-block:: cpp

py::module_ m("example", "pybind11 example plugin");
py::module_ m2 = m.def_submodule("sub", "A submodule of 'example'");
py::module_ m3 = m2.def_submodule("subsub", "A submodule of 'example.sub'");

\endrst

Definition at line 1188 of file pybind11.h.

References handle::m_ptr, and options::show_user_defined_docstrings().

◆ def_submodule() [2/2]

module_ module_::def_submodule ( const char *  name,
const char *  doc = nullptr 
)
inline

\rst Create and return a new Python submodule with the given name and docstring.

This also works recursively, i.e.

.. code-block:: cpp

py::module_ m("example", "pybind11 example plugin");
py::module_ m2 = m.def_submodule("sub", "A submodule of 'example'");
py::module_ m3 = m2.def_submodule("subsub", "A submodule of 'example.sub'");

\endrst

Definition at line 1185 of file pybind11.h.

References handle::m_ptr, and options::show_user_defined_docstrings().

◆ import() [1/2]

static module_ module_::import ( const char *  name)
inlinestatic

◆ import() [2/2]

static module_ module_::import ( const char *  name)
inlinestatic

Import and return a module or throws error_already_set.

Definition at line 1204 of file pybind11.h.

◆ reload() [1/2]

void module_::reload ( )
inline

Reload the module or throws error_already_set.

Definition at line 1209 of file pybind11.h.

References handle::ptr().

Referenced by TEST_CASE().

◆ reload() [2/2]

void module_::reload ( )
inline

Reload the module or throws error_already_set.

Definition at line 1213 of file pybind11.h.

References handle::ptr().


The documentation for this class was generated from the following files: