CodeObject class¶

(Shortest import: from brian2 import CodeObject)

class brian2.codegen.codeobject.CodeObject(owner, code, variables, variable_indices, template_name, template_source, name='codeobject*')[source]

Executable code object.

The code can either be a string or a brian2.codegen.templates.MultiTemplate.

After initialisation, the code is compiled with the given namespace using code.compile(namespace).

Calling code(key1=val1, key2=val2) executes the code with the given variables inserted into the namespace.

Attributes

 class_name A short name for this type of CodeObject generator_class The CodeGenerator class used by this CodeObject

Methods

 __call__(**kwds) compile() is_available() Whether this target for code generation is available. run() Runs the code in the namespace. update_namespace() Update the namespace for this timestep.

Details

class_name

A short name for this type of CodeObject

generator_class

The CodeGenerator class used by this CodeObject

__call__(**kwds)[source]
compile()[source]
classmethod is_available()[source]

Whether this target for code generation is available. Should use a minimal example to check whether code generation works in general.

run()[source]

Runs the code in the namespace.

Returns: return_value : dict A dictionary with the keys corresponding to the output_variables defined during the call of CodeGenerator.code_object.
update_namespace()[source]

Update the namespace for this timestep. Should only deal with variables where the reference changes every timestep, i.e. where the current reference in namespace is not correct.