elliptic.Kernel.DSL module

class elliptic.Kernel.DSL.DSL(template_manager, dsl_contract, dsl_meta)[source]

Bases: object

Defines the interface for interacting with a DSL.

Parameters
  • template_manager (TemplateManagerBase) – A TemplateManagerBase subinstance.

  • dsl_contract (DSLContract[~DSLImplementationSubclass]) – A DSL Contract.

  • dsl_meta (DSLMeta) – A DSLMeta instance.

get_built_module()[source]

Returns the compiled module that holds the generated code.

Return type

module

root()[source]

Entry point for building expressions.

Should be used as a context manager, using the with statement.

Return type

Iterator[DSLContract[~DSLImplementationSubclass]]

exception elliptic.Kernel.DSL.DSLBuildError[source]

Bases: elliptic.Kernel.DSL.DSLException

Exception raised when an error related to a DSL build process happens.

exception elliptic.Kernel.DSL.DSLException[source]

Bases: Exception

class elliptic.Kernel.DSL.DSLMeta[source]

Bases: abc.ABC

Class which stores information regarding the DSL compilation.

abstract include_dirs()[source]

Returns the list of include directories that should be used when compiling.

Cypyler adds the numpy includes by default. Any extra include paths should be returned here.

Example

[‘/usr/local/include/moab’]

Return type

List[str]

abstract libs()[source]

Returns the list of libraries that should be linked against.

Example

[‘MOAB’, ‘Trilinos’]

Return type

List[str]