pyplusplus.creators_factory package

Overview

pyplusplus.creators_factory.create(decls, module_name)

Modules

bpcreator

class pyplusplus.creators_factory.bpcreator.bpcreator_t(decls, module_name, boost_python_ns_name='bp', call_policies_resolver_=None, types_db=None, target_configuration=None, enable_indexing_suite=True)

Bases: pygccxml.declarations.decl_visitor.decl_visitor_t

code creators factory for Boost.Python library

This class takes a set of declarations as input and creates a code creators tree that contains the Boost.Python C++ source code for the final extension module. Each node in the code creators tree represents a block of text (C++ source code).

Constructor.

Parameters:
  • decls (list of declaration_t) – Declarations that should be exposed in the final module.
  • module_name (str) – The name of the final module.
  • boost_python_ns_name (str) – The alias for the boost::python namespace.
  • call_policies_resolver (callable) – Callable that takes one declaration (calldef_t) as input and returns a call policy object which should be used for this declaration.
  • types_db (L:class:types_database.types_database_t) – ...todo...
  • target_configuration (code_creators.target_configuration_t) – A target configuration object can be used to customize the generated source code to a particular compiler or a particular version of Boost.Python.
  • already_exposed_dbs (list of strings) – list of files/directories other modules, this module depends on, generated their code too
create(decl_headers=None)

create and return the module for the extension - code creators tree root.

Parameter:decl_headers – If None the headers for the wrapped decls are automatically found. But you can pass a list of headers here to override that search.
Return type:code_creators.module_t
expose_overloaded_mem_fun_using_macro(cls, cls_creator)
visit_casting_operator()
visit_class()
visit_class_declaration()
visit_constructor()
visit_destructor()
visit_enumeration()
visit_free_function()
visit_free_operator()
visit_member_function()
visit_member_operator()
visit_namespace()
visit_typedef()
visit_variable()

call_policies_resolver

class pyplusplus.creators_factory.call_policies_resolver.built_in_resolver_t(config=None)
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t
class pyplusplus.creators_factory.call_policies_resolver.default_policy_resolver_t
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t
class pyplusplus.creators_factory.call_policies_resolver.resolver_t
Bases: object
class pyplusplus.creators_factory.call_policies_resolver.return_internal_reference_resolver_t
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t
class pyplusplus.creators_factory.call_policies_resolver.return_self_resolver_t
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t
class pyplusplus.creators_factory.call_policies_resolver.return_value_policy_resolver_t
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t
class pyplusplus.creators_factory.call_policies_resolver.variable_accessors_resolver_t
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t
class pyplusplus.creators_factory.call_policies_resolver.void_pointer_resolver_t
Bases: pyplusplus.creators_factory.call_policies_resolver.resolver_t

creators_wizard

this module defines few function that will guess what creator(s) should be created for exposing a declaration

pyplusplus.creators_factory.creators_wizard.find_out_mem_fun_creator_classes(decl)
return tuple of ( registration, declaration ) code creator classes

ctypes_creator

class pyplusplus.creators_factory.ctypes_creator.ctypes_creator_t(global_ns, library_path, exported_symbols)

Bases: pygccxml.declarations.decl_visitor.decl_visitor_t

create()

create and return the module for the extension - code creators tree root

Return type:code_creators.module_t
visit_casting_operator()
visit_class()
visit_class_declaration()
visit_constructor()
visit_destructor()
visit_enumeration()
visit_free_function()
visit_free_operator()
visit_member_function()
visit_member_operator()
visit_namespace()
visit_typedef()
visit_variable()

dependencies_manager

defines class, which informs user about used, but unexposed declarations

pyplusplus.creators_factory.dependencies_manager.duplicated_aliases_reporter(decls)
class pyplusplus.creators_factory.dependencies_manager.duplicated_names_reporter_t(decls, value_getter, msg)

Bases: object

report(logger)
pyplusplus.creators_factory.dependencies_manager.duplicated_wrapper_aliases_reporter(decls)
class pyplusplus.creators_factory.dependencies_manager.manager_t(logger)

Bases: object

add_exported(decl)
inform_user()

fake_constructors_manager

defines class, which manages “fake constructors”

class pyplusplus.creators_factory.fake_constructors_manager.manager_t(global_ns)

Bases: object

is_fake_constructor(fc)
should_generate_code(fc)

opaque_types_manager

pyplusplus.creators_factory.opaque_types_manager.find_out_opaque_decl(type_, ensure_opaque_decl)
class pyplusplus.creators_factory.opaque_types_manager.manager_t(extmodule)

Bases: object

register_opaque(creator, decl_or_decls)

sort_algorithms

class pyplusplus.creators_factory.sort_algorithms.COLOR
class pyplusplus.creators_factory.sort_algorithms.calldef_organizer_t

Bases: object

build_groups(decls)
cmp_args_types(t1, t2)
cmp_calldefs(f1, f2)
join_groups(groups)
sort(decls)
sort_groups(groups)
class pyplusplus.creators_factory.sort_algorithms.class_organizer_t(decls, include_vars=False)

Bases: object

desired_order()
pyplusplus.creators_factory.sort_algorithms.sort(decls)
pyplusplus.creators_factory.sort_algorithms.sort_calldefs(decls)
pyplusplus.creators_factory.sort_algorithms.sort_classes(classes, include_vars=False)

types_database

class pyplusplus.creators_factory.types_database.types_database_t

Bases: object

create_holder(class_decl)
create_registrators(class_creator)

looks for all places where the class may be used as smart pointer.

If found, then creates code_creators.smart_pointer_registrator_t for that class and pointer type.

print_db()
update(decl)
update_containers(decl)
used_containers
blog comments powered by Disqus

Table Of Contents

Previous topic

pyplusplus._logging_ package

Next topic

pyplusplus.code_creators package

This Page