container: wrap STL containers¶
Wrap C++ STL containers
-
class
pybindgen.container.
Container
(name, value_type, container_type, outer_class=None, custom_name=None)¶ Bases:
object
Parameters: - name – C++ type name of the container, e.g. std::vector<int> or MyIntList
- value_type – a ReturnValue of the element type: note, for mapping containers, value_type is a tuple with two ReturnValue’s: (key, element).
- container_type – a string with the type of container, one of ‘list’, ‘deque’, ‘queue’, ‘priority_queue’, ‘vector’, ‘stack’, ‘set’, ‘multiset’, ‘hash_set’, ‘hash_multiset’, ‘map’
- outer_class (None or L{CppClass}) – if the type is defined inside a class, must be a reference to the outer class
- custom_name – alternative name to register with in the Python module
-
generate
(code_sink, module, docstring=None)¶ Generates the class to a code sink
-
generate_forward_declarations
(code_sink, module)¶ Generates forward declarations for the instance and type structures.
-
get_iter_pystruct
()¶
-
get_module
()¶ Get the Module object this type belongs to
-
get_pystruct
()¶
-
iter_pystruct
¶
-
module
¶ Get the Module object this type belongs to
-
pystruct
¶
-
python_full_name
¶
-
python_name
¶
-
register_alias
(alias)¶ Re-register the class with another base name, in addition to any registrations that might have already been done.
-
set_module
(module)¶ Set the Module object this type belongs to
-
class
pybindgen.container.
ContainerParameter
(ctype, name, direction=1, is_const=False, default_value=None)¶ Bases:
pybindgen.container.ContainerParameterBase
Container handlers
ctype – C type, normally ‘MyClass*’ name – parameter name
-
CTYPES
= []¶
-
DIRECTIONS
= [1]¶
-
container_type
= <pybindgen.Container None>¶
-
convert_c_to_python
(wrapper)¶ Write some code before calling the Python method.
-
convert_python_to_c
(wrapper)¶ parses python args to get C++ value
-
-
class
pybindgen.container.
ContainerParameterBase
(ctype, name, direction=1, is_const=False, default_value=None)¶ Bases:
types.Parameter
Base class for all C++ Class parameter handlers
ctype – C type, normally ‘MyClass*’ name – parameter name
-
CTYPES
= []¶
-
DIRECTIONS
= [1]¶
-
container_type
= <pybindgen.Container None>¶
-
-
class
pybindgen.container.
ContainerPtrParameter
(ctype, name, direction=1, is_const=False, default_value=None, transfer_ownership=None)¶ Bases:
pybindgen.container.ContainerParameterBase
Container handlers
-
CTYPES
= []¶
-
DIRECTIONS
= [1, 2, 3]¶
-
container_type
= <pybindgen.Container None>¶
-
convert_c_to_python
(wrapper)¶ Write some code before calling the Python method.
-
convert_python_to_c
(wrapper)¶ parses python args to get C++ value
-
-
class
pybindgen.container.
ContainerRefParameter
(ctype, name, direction=1, is_const=False, default_value=None)¶ Bases:
pybindgen.container.ContainerParameterBase
Container handlers
ctype – C type, normally ‘MyClass*’ name – parameter name
-
CTYPES
= []¶
-
DIRECTIONS
= [1, 2, 3]¶
-
container_type
= <pybindgen.Container None>¶
-
convert_c_to_python
(wrapper)¶ Write some code before calling the Python method.
-
convert_python_to_c
(wrapper)¶ parses python args to get C++ value
-
-
class
pybindgen.container.
ContainerReturnValue
(ctype, is_const=False)¶ Bases:
pybindgen.container.ContainerReturnValueBase
Container type return handlers
override to fix the ctype parameter with namespace information
-
CTYPES
= []¶
-
NO_RETVAL_DECL
= True¶
-
container_type
= <pybindgen.Container None>¶
-
convert_c_to_python
(wrapper)¶ see ReturnValue.convert_c_to_python
-
convert_python_to_c
(wrapper)¶ see ReturnValue.convert_python_to_c
-
get_c_error_return
()¶ See ReturnValue.get_c_error_return
-
-
class
pybindgen.container.
ContainerReturnValueBase
(ctype)¶ Bases:
types.ReturnValue
Class return handlers – base class
-
CTYPES
= []¶
-
container_type
= <pybindgen.Container None>¶
-
-
class
pybindgen.container.
ContainerTraits
(add_value_method, is_mapping=False)¶ Bases:
object
-
class
pybindgen.container.
IterNextWrapper
(container)¶ Bases:
pybindgen.typehandlers.base.ForwardWrapperBase
tp_iternext wrapper
value_type – a ReturnValue object handling the value type; container – the L{Container}
-
HAVE_RETURN_VALUE
= True¶
-
generate
(code_sink)¶ code_sink – a CodeSink instance that will receive the generated code
-
generate_call
()¶ Generates the code (into self.before_call) to call into Python, storing the result in the variable ‘py_retval’; should also check for call error.
-
reset_code_generation_state
()¶
-