Type System Code Generator (cyclus.gentypesystem
)¶
Generates Cyclus Type System bindings.
Module history:
2016-10-12: scopatz: This file used to be called genapi.py in cymetric.
- class cyclus.gentypesystem.Indenter(s)¶
Handles indentations.
- class cyclus.gentypesystem.TypeSystem(table, cycver, rawver=None, cpp_typesystem='cpp_typesystem')¶
A type system for cyclus code generation.
- classname(t)¶
Returns a version of the type name suitable for use in a class name.
- convert_to_cpp(x, t)¶
Converts a Python variable to C++.
- Parameters:
x : str
variable name
t : str
variable type
- Returns:
decl : str
Declarations needed for conversion, may be many lines.
body : str
Actual conversion implementation, may be many lines.
rtn : str
Return expression.
- convert_to_py(x, t)¶
Converts a C++ variable to python.
- Parameters:
x : str
variable name
t : str
variable type
- Returns:
decl : str
Declarations needed for conversion, may be many lines.
body : str
Actual conversion implementation, may be many lines.
rtn : str
Return expression.
- cython_cpp_name(t)¶
Returns the C++ name of the type, eg INT -> cpp_typesystem.INT.
- cython_type(t)¶
Returns the Cython spelling of the type.
- funcname(t)¶
Returns a version of the type name suitable for use in a function name.
- hold_any_to_py(x, t)¶
Returns an expression for converting a hold_any object to Python.
- new_py_inst(t)¶
Returns the new instance for the type.
- nptype(n)¶
Returns the numpy type for a normal form element.
Returns the Cython type, or if it is a shared pointer type, return the shared pointer version.
- py_to_any(a, val, t)¶
Returns an expression for assigning a Python object (val) to an any object (a).
- var_to_cpp(x, t)¶
Returns an expression for converting a Python object to C++.
- var_to_py(x, t)¶
Returns an expression for converting an object to Python.
- cyclus.gentypesystem.code_gen(ts, ns)¶
Generates code given a type system and a namespace.
- cyclus.gentypesystem.cpp_typesystem(ts, ns)¶
Creates the Cython header that wraps the Cyclus type system.
- cyclus.gentypesystem.main(argv=None)¶
Entry point into the code generation. Accepts list of command line arguments.
- cyclus.gentypesystem.parse_args(argv)¶
Parses typesystem arguments for code generation.
- cyclus.gentypesystem.parse_template(s, open_brace='<', close_brace='>', separator=',')¶
Takes a string – which may represent a template specialization – and returns the corresponding type. Mostly cribbed from xdress.
- cyclus.gentypesystem.safe_output(cmd, shell=False, *args, **kwargs)¶
Checks that a command successfully runs with/without shell=True. Returns the output.
- cyclus.gentypesystem.setup(ns)¶
Ensure that we are ready to perform code generation. Returns typesystem.
- cyclus.gentypesystem.split_template_args(s, open_brace='<', close_brace='>', separator=',')¶
Takes a string with template specialization and returns a list of the argument values as strings. Mostly cribbed from xdress.
- cyclus.gentypesystem.typesystem_pxd(ts, ns)¶
Creates the Cython wrapper header for the Cyclus type system.
- cyclus.gentypesystem.typesystem_pyx(ts, ns)¶
Creates the Cython wrapper for the Cyclus type system.