cppattribute: wrap class/instance attributes¶
Wraps C++ class instance/static attributes.
- class pybindgen.cppattribute.CppInstanceAttributeGetter(value_type, class_, attribute_name, getter=None)¶
Bases:
PyGetter
A getter for a C++ instance attribute.
- Parameters:
value_type – a ReturnValue object handling the value type;
class – the class (CppClass object)
attribute_name – name of attribute
getter – None, or name of a method of the class used to get the value
- generate(code_sink)¶
- Parameters:
code_sink – a CodeSink instance that will receive the generated code
- generate_call()¶
virtual method implementation; do not call
- class pybindgen.cppattribute.CppInstanceAttributeSetter(value_type, class_, attribute_name, setter=None)¶
Bases:
PySetter
A setter for a C++ instance attribute.
- Parameters:
value_type – a ReturnValue object handling the value type;
class – the class (CppClass object)
attribute_name – name of attribute
setter – None, or name of a method of the class used to set the value
- generate(code_sink)¶
- Parameters:
code_sink – a CodeSink instance that will receive the generated code
- class pybindgen.cppattribute.CppStaticAttributeGetter(value_type, class_, attribute_name)¶
Bases:
PyGetter
A getter for a C++ class static attribute.
- Parameters:
value_type – a ReturnValue object handling the value type;
c_value_expression – C value expression
- generate(code_sink)¶
- Parameters:
code_sink – a CodeSink instance that will receive the generated code
- generate_call()¶
virtual method implementation; do not call
- class pybindgen.cppattribute.CppStaticAttributeSetter(value_type, class_, attribute_name)¶
Bases:
PySetter
A setter for a C++ class static attribute.
- Parameters:
value_type – a ReturnValue object handling the value type;
class – the class (CppClass object)
attribute_name – name of attribute
- generate(code_sink)¶
- Parameters:
code_sink – a CodeSink instance that will receive the generated code
- class pybindgen.cppattribute.PyGetSetDef(cname)¶
Bases:
object
Class that generates a PyGetSet table
- Parameters:
cname – C name of the getset table
- add_attribute(name, getter, setter, custom_name=None)¶
Add a new attribute :param name: attribute name :param getter: a PyGetter object, or None :param setter: a PySetter object, or None
- empty()¶
- generate(code_sink)¶
Generate the getset table, return the table C name or ‘0’ if the table is empty
- class pybindgen.cppattribute.PyGetter(return_value, parameters, parse_error_return, error_return, force_parse=None, no_c_retval=False, unblock_threads=False)¶
Bases:
ForwardWrapperBase
generates a getter, for use in a PyGetSetDef table
Base constructor
- Parameters:
return_value – type handler for the return value
parameters – a list of type handlers for the parameters
parse_error_return – statement to return an error during parameter parsing
error_return – statement to return an error after parameter parsing
force_parse – force generation of code to parse parameters even if there are none
no_c_retval – force the wrapper to not have a C return value
unblock_threads – generate code to unblock python threads during the C function call
- generate(code_sink)¶
Generate the code of the getter to the given code sink
- generate_call()¶
(not actually called)
- class pybindgen.cppattribute.PyMetaclass(name, parent_metaclass_expr, getsets=None)¶
Bases:
object
Class that generates a Python metaclass
- Parameters:
name – name of the metaclass (should normally end with Meta)
parent_metaclass_expr – C expression that should give a pointer to the parent metaclass (should have a C type of PyTypeObject*)
getsets – name of a PyGetSetDef C array variable, or None
- generate(code_sink, module)¶
Generate the metaclass to code_sink and register it in the module.
- class pybindgen.cppattribute.PySetter(return_value, parameters, error_return=None)¶
Bases:
ReverseWrapperBase
generates a setter, for use in a PyGetSetDef table
Base constructor
- Parameters:
return_value – type handler for the return value
parameters – a list of type handlers for the parameters
- NO_GIL_LOCKING = True¶
- generate(code_sink)¶
Generate the code of the setter to the given code sink
- generate_python_call()¶
(not actually called)