The class_ class
- class cpp2py.wrap_generator.class_(py_type, c_type, c_type_absolute=None, hdf5=False, arithmetic=None, serializable=None, export=True, is_printable=False, doc='', comparisons='')[source]
Representation of a wrapped type
- add_call(**kw)[source]
Add the __call__ operator.
It just calls add_method, for the operator(), with name = “__call__”
Cf add_method documentation.
- add_constructor(signature, calling_pattern=None, intermediate_type=None, doc='')[source]
- Parameters:
signature (string) –
signature of the function, with types, parameter names and defaut value rtype( arg1 name1, arg2 name2 = default2, ….) signature can be :
- a string of 2 possible forms (i.e. c_name can be omitted) :
rtype (arg1 name1, arg2 name2 = default2, ….)
rtype c_name ( arg1 name1, arg2 name2 = default2, ….)
a dict : rtype -> string , args -> list of tuples [ (c_type, variable_name, default_value)]
rtype : the C++ type returned by the function. None for constructor
default_value is None when there is no default.
calling_pattern (string, expert only) –
Pattern to rewrite the call of the c++ constructor.
It is a string, argument name and defining a result of the c_type e.g., the default pattern is :: auto result = c_type (a,b,c)
intermediate_type (string) –
Name of a C++ type to be used for constructing the object which is then constructed as c_type { intermediate_type {….}} E.g. Put a regular_type here when wrapping a view.
doc (string) – the doc string.
- add_getitem(signature, calling_pattern=None, doc='operator[]')[source]
Add a the __getitem__ operator
- add_iterator(c_type='const_iterator', c_cast_type=None, begin='std::begin', end='std::end')[source]
Add an iterator, wrapping a C++ iterator.
- Parameters:
c_type (string) – type of the C++ variable
c_cast_type (string) – If not None, the result of the C++ iterator dereference if converted to the cast_type.
begin (string) – Functions to find begin and end.
end (string) – Functions to find begin and end.
- add_len(c_name=None, calling_pattern=None, doc='Length')[source]
Add the len operator
- add_member(c_name, c_type, py_name=None, read_only=False, doc='')[source]
Add a class member
- Parameters:
c_name (string) – name of the variable in C++
c_type (string) – type of the C++ variable
py_name (string) – name of the variable in python. If None, use c_name.
read_only (boolean) – is a read only parameter
doc (string) – the doc string.
- add_method(signature, name=None, calling_pattern=None, no_self_c=False, is_method=False, is_static=False, doc='', release_GIL_and_enable_signal=False, c_name=None)[source]
Add a C++ overload to a method of name name.
- Parameters:
signature (string) –
signature of the function, with types, parameter names and defaut value rtype( arg1 name1, arg2 name2 = default2, ….) signature can be :
- a string of 2 possible forms (i.e. c_name can be omitted) :
rtype (arg1 name1, arg2 name2 = default2, ….)
rtype c_name ( arg1 name1, arg2 name2 = default2, ….)
a dict : rtype -> string , args -> list of tuples [ (c_type, variable_name, default_value)]
rtype : the C++ type returned by the function. None for constructor
default_value is None when there is no default.
name (string) – name given in Python
c_name (string) – name given in C++ If None, the C++ name extracted from the signature is used.
calling_pattern (string) –
Pattern to rewrite the call of the c++ function,
It is a string, using self_c, argument name and defining result at the end if rtype != void e.g., the default pattern is : auto result = self_c.method_name(a,b,c).
If None, the signature must contain c_name
no_self_c (boolean.) – do not generate self_c reference in C++ code, in some rare calling_pattern. Avoid a compiler warning.
is_method (boolean)
is_static (boolean) – Is is a static method
doc (string) – the doc string.
release_GIL_and_enable_signal (boolean, expert only) –
For long functions in pure C++.
If True, the GIL is released in the call of the C++ function and restored after the call.
It also saves the signal handler of python and restores it after the call, and enables the C++ signal_handler.
This allows e.g. to intercept Ctrl-C during the long C++ function.
- Requirement :
The function wrapped must be pure C++, i.e. no call whatsoever to the python C API, directly or indirectly. otherwise the behaviour is undefined.
- add_method_copy(clone_function='cpp2py::make_clone')[source]
Add a method copy, that make a deep copy, using the clone function
- add_method_copy_from()[source]
Add a copy_from, using C++ assignment
- add_method_cpp_copy()[source]
Add a method sh_copy, that make an ordinary copy in C++
- add_property(getter, setter=None, name=None, doc='')[source]
Add a property
- Parameters:
getter (-)
setter (-)
name (-)
doc (-)
- add_regular_type_converter()[source]
- add_setitem(signature, calling_pattern=None, doc='operator[]', **d)[source]
Add a the __setitem__ operator