Wrapper for Python extension modules. More...
#include </builds/ipbus/ipbus-software/uhal/python/pybind11-python2/include/pybind11/pybind11.h>
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... | |
| object & | operator= (const object &other) |
| object & | operator= (object &&other) noexcept |
| template<typename T > | |
| T | cast () const & |
| template<typename T > | |
| 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... | |
| object & | operator= (const object &other) |
| object & | operator= (object &&other) noexcept |
| template<typename T > | |
| T | cast () const & |
| template<typename T > | |
| T | cast () && |
| object (handle h, borrowed_t) | |
| object (handle h, stolen_t) | |
| template<typename T > | |
| T | cast () const & |
| template<typename T > | |
| 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 handle & | inc_ref () const & |
| \rst Manually increase the reference count of the Python object. More... | |
| const handle & | dec_ref () const & |
| \rst Manually decrease the reference count of the Python object. More... | |
| template<typename T > | |
| 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 handle & | inc_ref () const & |
| \rst Manually increase the reference count of the Python object. More... | |
| const handle & | dec_ref () const & |
| \rst Manually decrease the reference count of the Python object. More... | |
| template<typename T > | |
| 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 |
Wrapper for Python extension modules.
Definition at line 1145 of file pybind11.h.
| using module_::module_def = PyModuleDef |
Definition at line 1238 of file pybind11.h.
|
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().
|
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().
|
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().
|
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().
|
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_().
|
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().
|
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().
|
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().
|
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().
|
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().
|
inlinestatic |
Import and return a module or throws error_already_set.
Definition at line 1200 of file pybind11.h.
Referenced by dtype::_dtype_from_pep3118(), type_caster< Type, enable_if_t< is_eigen_sparse< Type >::value > >::cast(), ensure_builtins_in_globals(), eval(), globals(), type_caster< Type, enable_if_t< is_eigen_sparse< Type >::value > >::load(), npy_api::lookup(), print(), and PYBIND11_DEPRECATED().
|
inlinestatic |
Import and return a module or throws error_already_set.
Definition at line 1204 of file pybind11.h.
|
inline |
Reload the module or throws error_already_set.
Definition at line 1209 of file pybind11.h.
References handle::ptr().
Referenced by TEST_CASE().
|
inline |
Reload the module or throws error_already_set.
Definition at line 1213 of file pybind11.h.
References handle::ptr().