CodeObject class

(Shortest import: from brian2.codegen.codeobject import CodeObject)

class brian2.codegen.codeobject.CodeObject(*args, **kw)[source]

Bases: Nameable

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)

Call self as a function.

after_run()

Runs the finalizing code in the namespace.

before_run()

Runs the preparation code in the namespace.

compile()

compile_block(block)

is_available()

Whether this target for code generation is available.

run()

Runs the main code in the namespace.

run_block(block)

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]

Call self as a function.

after_run()[source]

Runs the finalizing code in the namespace. This code will only be executed once per run.

before_run()[source]

Runs the preparation code in the namespace. This code will only be executed once per run.

compile()[source]
compile_block(block)[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 main code in the namespace.

run_block(block)[source]
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.