Go to the source code of this file.
Classes | |
class | pyobject_tag |
Tag and check to identify a class which implements the Python object API. More... | |
class | object_api< Derived > |
class | handle |
class | object |
struct | object::borrowed_t |
struct | object::stolen_t |
class | error_already_set |
class | accessor< Policy > |
struct | obj_attr |
struct | str_attr |
struct | generic_item |
struct | sequence_item |
struct | list_item |
struct | tuple_item |
class | generic_iterator< Policy > |
STL iterator template used for tuple, list, sequence and dict. More... | |
struct | arrow_proxy< T > |
Quick proxy class needed to implement operator-> for iterators which can't return pointers. More... | |
class | sequence_fast_readonly |
Lightweight iterator policy using just a simple pointer: see PySequence_Fast_ITEMS More... | |
class | sequence_slow_readwrite |
Full read and write access using the sequence protocol: see detail::sequence_accessor More... | |
class | dict_readonly |
Python's dictionary protocol permits this to be a forward iterator. More... | |
class | kwargs_proxy |
class | args_proxy |
class | iterator |
class | type |
class | iterable |
class | str |
class | bytes |
class | none |
class | ellipsis |
class | bool_ |
class | int_ |
class | float_ |
class | weakref |
class | slice |
class | capsule |
class | tuple |
class | dict |
class | sequence |
class | list |
class | args |
class | kwargs |
class | set |
class | function |
class | staticmethod |
class | buffer |
class | memoryview |
Namespaces | |
accessor_policies | |
literals | |
Macros | |
#define | PYBIND11_STR_CHECK_FUN PyUnicode_Check |
#define | PYBIND11_OBJECT_COMMON(Name, Parent, CheckFun) |
#define | PYBIND11_OBJECT_CVT(Name, Parent, CheckFun, ConvertFun) |
#define | PYBIND11_OBJECT_CVT_DEFAULT(Name, Parent, CheckFun, ConvertFun) |
#define | PYBIND11_OBJECT_CHECK_FAILED(Name, o_ptr) |
#define | PYBIND11_OBJECT(Name, Parent, CheckFun) |
#define | PYBIND11_OBJECT_DEFAULT(Name, Parent, CheckFun) |
#define | PYBIND11_MATH_OPERATOR_UNARY(op, fn) |
#define | PYBIND11_MATH_OPERATOR_BINARY(op, fn) |
Typedefs | |
using | obj_attr_accessor = accessor< accessor_policies::obj_attr > |
using | str_attr_accessor = accessor< accessor_policies::str_attr > |
using | item_accessor = accessor< accessor_policies::generic_item > |
using | sequence_accessor = accessor< accessor_policies::sequence_item > |
using | list_accessor = accessor< accessor_policies::list_item > |
using | tuple_accessor = accessor< accessor_policies::tuple_item > |
template<typename T > | |
using | is_pyobject = std::is_base_of< pyobject_tag, remove_reference_t< T > > |
using | tuple_iterator = generic_iterator< iterator_policies::sequence_fast_readonly > |
using | list_iterator = generic_iterator< iterator_policies::sequence_fast_readonly > |
using | sequence_iterator = generic_iterator< iterator_policies::sequence_slow_readwrite > |
using | dict_iterator = generic_iterator< iterator_policies::dict_readonly > |
template<typename T > | |
using | is_keyword = std::is_base_of< arg, T > |
Python argument categories (using PEP 448 terms) More... | |
template<typename T > | |
using | is_s_unpacking = std::is_same< args_proxy, T > |
template<typename T > | |
using | is_ds_unpacking = std::is_same< kwargs_proxy, T > |
template<typename T > | |
using | is_positional = satisfies_none_of< T, is_keyword, is_s_unpacking, is_ds_unpacking > |
template<typename T > | |
using | is_keyword_or_ds = satisfies_any_of< T, is_keyword, is_ds_unpacking > |
Functions | |
bool | isinstance_generic (handle obj, const std::type_info &tp) |
template<typename T > | |
T | reinterpret_borrow (handle h) |
template<typename T > | |
T | reinterpret_steal (handle h) |
std::string | error_string () |
template<typename T , detail::enable_if_t< std::is_base_of< object, T >::value, int > = 0> | |
bool | isinstance (handle obj) |
template<> | |
bool | isinstance< handle > (handle)=delete |
template<> | |
bool | isinstance< object > (handle obj) |
bool | isinstance (handle obj, handle type) |
bool | hasattr (handle obj, handle name) |
bool | hasattr (handle obj, const char *name) |
void | delattr (handle obj, handle name) |
void | delattr (handle obj, const char *name) |
object | getattr (handle obj, handle name) |
object | getattr (handle obj, const char *name) |
object | getattr (handle obj, handle name, handle default_) |
object | getattr (handle obj, const char *name, handle default_) |
void | setattr (handle obj, handle name, handle value) |
void | setattr (handle obj, const char *name, handle value) |
ssize_t | hash (handle obj) |
handle | get_function (handle value) |
template<typename T , enable_if_t< is_pyobject< T >::value, int > = 0> | |
auto | object_or_cast (T &&o) -> decltype(std::forward< T >(o)) |
template<typename T , enable_if_t<!is_pyobject< T >::value, int > = 0> | |
object | object_or_cast (T &&o) |
handle | object_or_cast (PyObject *ptr) |
bool | PyIterable_Check (PyObject *obj) |
bool | PyNone_Check (PyObject *o) |
bool | PyEllipsis_Check (PyObject *o) |
bool | PyStaticMethod_Check (PyObject *o) |
str | literals::operator""_s (const char *s, size_t size) |
template<typename Unsigned > | |
Unsigned | as_unsigned (PyObject *o) |
template<typename... Args> | |
constexpr bool | args_are_all_keyword_or_ds () |
size_t | len (handle h) |
Get the length of a Python object. More... | |
size_t | len_hint (handle h) |
str | repr (handle h) |
iterator | iter (handle obj) |
#define PYBIND11_MATH_OPERATOR_BINARY | ( | op, | |
fn | |||
) |
#define PYBIND11_MATH_OPERATOR_UNARY | ( | op, | |
fn | |||
) |
#define PYBIND11_OBJECT | ( | Name, | |
Parent, | |||
CheckFun | |||
) |
#define PYBIND11_OBJECT_CHECK_FAILED | ( | Name, | |
o_ptr | |||
) |
#define PYBIND11_OBJECT_COMMON | ( | Name, | |
Parent, | |||
CheckFun | |||
) |
#define PYBIND11_OBJECT_CVT | ( | Name, | |
Parent, | |||
CheckFun, | |||
ConvertFun | |||
) |
#define PYBIND11_OBJECT_CVT_DEFAULT | ( | Name, | |
Parent, | |||
CheckFun, | |||
ConvertFun | |||
) |
#define PYBIND11_OBJECT_DEFAULT | ( | Name, | |
Parent, | |||
CheckFun | |||
) |
using dict_iterator = generic_iterator<iterator_policies::dict_readonly> |
using is_ds_unpacking = std::is_same<kwargs_proxy, T> |
using is_keyword = std::is_base_of<arg, T> |
using is_keyword_or_ds = satisfies_any_of<T, is_keyword, is_ds_unpacking> |
using is_positional = satisfies_none_of<T, is_keyword, is_s_unpacking, is_ds_unpacking > |
using is_pyobject = std::is_base_of<pyobject_tag, remove_reference_t<T> > |
using is_s_unpacking = std::is_same<args_proxy, T> |
using item_accessor = accessor<accessor_policies::generic_item> |
using list_accessor = accessor<accessor_policies::list_item> |
using list_iterator = generic_iterator<iterator_policies::sequence_fast_readonly> |
using obj_attr_accessor = accessor<accessor_policies::obj_attr> |
using sequence_accessor = accessor<accessor_policies::sequence_item> |
using sequence_iterator = generic_iterator<iterator_policies::sequence_slow_readwrite> |
using str_attr_accessor = accessor<accessor_policies::str_attr> |
using tuple_accessor = accessor<accessor_policies::tuple_item> |
using tuple_iterator = generic_iterator<iterator_policies::sequence_fast_readonly> |
|
inlinedelete |
|
inline |
|
inline |
object object_or_cast | ( | T && | o | ) |
auto object_or_cast | ( | T && | o | ) | -> decltype(std::forward<T>(o)) |
T reinterpret_borrow | ( | handle | h | ) |
\rst Declare that a handle
or PyObject *
is a certain type and borrow the reference. The target type T
must be object
or one of its derived classes. The function doesn't do any conversions or checks. It's up to the user to make sure that the target type is correct.
.. code-block:: cpp
PyObject *p = PyList_GetItem(obj, index); py::object o = reinterpret_borrow<py::object>(p);
or py::tuple t = reinterpret_borrow<py::tuple>(p); // <– p
must be already be a tuple
\endrst