Code creators.
This sub-package contains the code creator classes which are nodes in the code creator tree. This tree represents the entire source code of the final extension module (even when the source code will later be distributed among several source files) and each individual code creator represents a single block of source code.
The base class for all code creators is code_creators.code_creator_t.
This module is a collection of unrelated algorithms, that works on code creators tree.
This class is used as container for different find algorithms.
Bases: pyplusplus.code_creators.registration_based.registration_based_t
This class creates code that register static sized array
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Bases: pyplusplus.code_creators.registration_based.registration_based_t
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates boost.python code needed to register type conversions( implicitly_convertible ). This case treat situation when class has public non explicit constuctor from another type.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates boost.python code needed to register casting operators. For some operators Pythonic name is given: __int__, __long__, __float__, __str__
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates boost.python code needed to register type conversions( implicitly_convertible )
Bases: pyplusplus.code_creators.calldef.calldef_t
Creates boost.python code needed to expose constructor.
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Creates C++ code that builds wrapper arround exposed constructor.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates wrapper class constructor from wrapped class instance.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates class wrapper destructor from the code provided by the user
Bases: pyplusplus.code_creators.calldef.calldef_overloads_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_overloads_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates wrapper for compiler generated null constructor.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates boost.python code needed to expose supported subset of C++ operators.
Bases: pyplusplus.code_creators.declaration_based.declaration_based_t, pyplusplus.code_creators.registration_based.registration_based_t
Creates boost.python code that expose member function as static function.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef_transformed.sealed_fun_transformed_t
Creates code for public non-virtual member functions.
Bases: pyplusplus.code_creators.calldef_transformed.sealed_fun_transformed_wrapper_t
Constructor.
| Parameter: | function (calldef_t) – Function declaration |
|---|
Bases: pyplusplus.code_creators.calldef_transformed.sealed_fun_transformed_t
Creates code for public non-virtual member functions.
Bases: pyplusplus.code_creators.calldef_transformed.sealed_fun_transformed_wrapper_t
Constructor.
| Parameter: | function (calldef_t) – Function declaration |
|---|
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.calldef.calldef_wrapper_t
Bases: pyplusplus.code_creators.calldef.calldef_t
Bases: pyplusplus.code_creators.scoped.scoped_t, pyplusplus.code_creators.registration_based.registration_based_t
Bases: pyplusplus.code_creators.compound.compound_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.scoped.scoped_t, pyplusplus.code_creators.registration_based.registration_based_t
Creates boost.python code that needed to export a class
Bases: pyplusplus.code_creators.scoped.scoped_t
creates C++ code, which creates wrapper around a class
Bases: object
code_creator_t is the base class for all code creators.
This class defines the interface that every code creator should implement. Also it provides few convenience functions.
The purpose of a code creator is the generation of a block of C++ source code as it will appear in the final source code for the extension module. The source code is obtained by calling the code_creator_t.create() method. Derived classes must implement the code_creator_t._create_impl() method which is called by the code_creator_t.create() method.
Constructor.
| Parameter: | parent (code_creator_t) – Parent code creator. |
|---|
function that returns code without leading and trailing white spaces.
| Parameter: | code (str) – A code block with C++ source code. |
|---|---|
| Return type: | str |
generates source code
| Return type: | str |
|---|
function that implements code indent algorithm.
| Parameters: |
|
|---|---|
| Return type: | str |
function that returns true if content of the line is comment, otherwise false.
| Parameters: |
|
|---|---|
| Return type: | bool |
top_parent - reference to top parent code creator
@type: code_creators.code_creator_t
function that implements code unindent algorithm.
| Parameter: | code (str) – C++ code block. |
|---|---|
| Return type: | str |
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Creates Python import directive
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Constructor.
| Parameter: | parent (code_creators.code_creator_t) – Parent code creator. |
|---|
Add a creator to the list of children creators.
| Parameters: |
|
|---|
Add a creators to the list of children creators.
| Parameters: |
|
|---|
concatenate the code from a list of code creators.
| Parameter: | creators (list of code_creators.code_creator_t) – A list with code creators |
|---|---|
| Return type: | str |
Remove a children code creator object.
@precondition: creator must be a children of self :param creator: The creator node to remove :type creator: code_creators.code_creator_t
defines types visitor class interface
Bases: pygccxml.declarations.type_visitor.type_visitor_t
types visitor interface
All functions within this class should be redefined in derived classes.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
creates code that expose address of the object to Python
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
creates code that expose address of the object to Python
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Base class for custom code. works_on_instance: If true, the custom code can be applied directly to obj inst. Ex: ObjInst.”CustomCode”
Bases: pyplusplus.code_creators.custom.custom_t
Code creator that is based on a declaration.
Constructor.
| Parameters: |
|
|---|
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Creates Python import directive
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
create code that exposes C++ enumeration
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.global_variable.global_variable_base_t
Creates boost.python code that exposes array global variable.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Creates C++ code that register array class.
Bases: pyplusplus.code_creators.global_variable.global_variable_base_t
Creates boost.python code that exposes address of global variable.
This functionality is pretty powerful if you use it with “ctypes” - standard package.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Base class for all global variables code creators. Mainly exists to simplify file writers algorithms.
Bases: pyplusplus.code_creators.global_variable.global_variable_base_t
Creates boost.python code that exposes global variable.
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Creates Python import directive
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Creates C++ code for include directive
Bases: pyplusplus.code_creators.instruction.instruction_t
The instance of this class holds a list of user defined directories. code_creators.include_t and code_creators.precompiled_header_t code creators use it to generate relative include directives.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t
This class is used as a base class for different instruction for code creators.
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Creates reference to a library
Bases: pyplusplus.code_creators.code_creator.code_creator_t
This class allows user to put his license on the top of every generated file. License text will be generated as is.
Bases: pyplusplus.code_creators.member_variable.member_variable_base_t
Creates boost.python code that exposes array member variable.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
registers array class
Bases: pyplusplus.code_creators.member_variable.member_variable_base_t
Creates boost.python code that exposes bit fields member variables
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
creates get/set accessors for bit fields
function that implements code indent algorithm.
| Parameters: |
|
|---|---|
| Return type: | str |
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Bases: pyplusplus.code_creators.member_variable.member_variable_base_t
creates get/set accessors for class member variable, that has type reference.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
creates get/set accessors for class member variable, that has type reference.
function that implements code indent algorithm.
| Parameters: |
|
|---|---|
| Return type: | str |
Bases: pyplusplus.code_creators.member_variable.member_variable_base_t
Creates boost.python code that exposes address of member variable.
This functionality is pretty powerful if you use it with “ctypes” - standard package.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Base class for all member variables code creators. Mainly exists to simplify file writers algorithms.
Bases: pyplusplus.code_creators.member_variable.member_variable_base_t
Creates boost.python code that exposes member variable.
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
creates get/set accessors for class variables, that has type pointer
function that implements code indent algorithm.
| Parameters: |
|
|---|---|
| Return type: | str |
Bases: pyplusplus.code_creators.module.module_t
This class represents the source code for the entire extension module.
The root of the code creator tree is always a module_t object.
Constructor.
Insert an code_creators.include_t object.
The include creator is inserted right after the last include file.
| Parameter: | include_creator (code_creators.include_t) – Include creator object |
|---|
return the children index of the last code_creators.include_t object.
An exception is raised when there is no include_t object among the children creators.
| Return type: | int |
|---|
Bases: pyplusplus.code_creators.module.module_t
This class represents the source code for the entire extension module.
The root of the code creator tree is always a module_t object.
Constructor.
Bases: pyplusplus.code_creators.compound.compound_t
This class represents the source code for the entire extension module.
The root of the code creator tree is always a module_t object.
Constructor.
License text.
The license text will always be the first children node. @type: str or code_creators.license_t
Bases: pyplusplus.code_creators.compound.compound_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t
creates dictionary { [un]decorated name : [un]decorated name }
Bases: pyplusplus.code_creators.code_creator.code_creator_t, pyplusplus.code_creators.declaration_based.declaration_based_t
This class creates code that register static sized array
Bases: pyplusplus.code_creators.registration_based.registration_based_t
Bases: pyplusplus.code_creators.code_creator.code_creator_t
Code creator that is based on a declaration.
Bases: object
Helper class that can hold smart pointer name and create identifier for the held type from that given a creator.
| Parameter: | smart_ptr – smart pointer type as string |
|---|
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
Converter for boost::python::register_ptr_to_python.
Lets boost python know that it can use smart_ptr to hold a an object. See: http://www.boost.org/libs/python/doc/v2/register_ptr_to_python.html
smart_ptr: string of pointer type. Ex: boost::shared_ptr
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t
creator for boost::python::implicitly_convertible. This creates a statement that allows the usage of C++ implicit conversion from source to target. See: http://www.boost.org/libs/python/doc/v2/implicit.html
Bases: object
Developers do not always work with latest version of boost.python or latest version of compiler. So there is a need to generate code that configured to specific version, feature or compiler. Instance of this class will be shared between all instances of code creators. Every relevant code creator will respect relevant configuration settings.
Bases: pyplusplus.code_creators.registration_based.registration_based_t, pyplusplus.code_creators.declaration_based.declaration_based_t