# CodeObjectTemplate class

(Shortest import: `from brian2.codegen.templates import CodeObjectTemplate)`

class brian2.codegen.templates.CodeObjectTemplate(template, template_source)

  Bases: `object`

  Single template object returned by `Templater` and used for final code generation

  Should not be instantiated by the user, but only directly by `Templater`.

  Notes

  The final code is obtained from this by calling the template (see `__call__`).

  Attributes

  `allows_scalar_write` | Does this template allow writing to scalar variables?
  `iterate_all` | The indices over which the template iterates completely
  `variables` | The set of variables in this template
  `writes_read_only` | Read-only variables that are changed by this template

  Methods

  `__call__`(scalar_code, vector_code, **kwds) | Return a usable code block or blocks from this template.

  Details

  allows_scalar_write

    Does this template allow writing to scalar variables?

  iterate_all

    The indices over which the template iterates completely

  variables

    The set of variables in this template

  writes_read_only

    Read-only variables that are changed by this template

  __call__(scalar_code, vector_code, **kwds)

    Return a usable code block or blocks from this template.

    Parameters:

      scalar_code : dict

      > Dictionary of scalar code blocks.

      vector_code : dict

      > Dictionary of vector code blocks

      **kwds :

      > Additional parameters to pass to the template

    Notes

    Returns either a string (if macros were not used in the template), or a `MultiTemplate` (if macros were used).