# abstract_code_dependencies function

(Shortest import: `from brian2.parsing.dependencies import abstract_code_dependencies)`

brian2.parsing.dependencies.abstract_code_dependencies(code, known_vars=None, known_funcs=None)

  Analyses identifiers used in abstract code blocks

  Parameters:

    code : str

    > The abstract code block.

    known_vars : set

    > The set of known variable names.

    known_funcs : set

    > The set of known function names.

  Returns:

    results : namedtuple with the following fields

    > `all`

    >   The set of all identifiers that appear in this code block, including functions.

    > `read`

    >   The set of values that are read, excluding functions.

    > `write`

    >   The set of all values that are written to.

    > `funcs`

    >   The set of all function names.

    > `known_all`

    >   The set of all identifiers that appear in this code block and are known.

    > `known_read`

    >   The set of known values that are read, excluding functions.

    > `known_write`

    >   The set of known values that are written to.

    > `known_funcs`

    >   The set of known functions that are used.

    > `unknown_read`

    >   The set of all unknown variables whose values are read. Equal to `read-known_vars`.

    > `unknown_write`

    >   The set of all unknown variables written to. Equal to `write-known_vars`.

    > `unknown_funcs`

    >   The set of all unknown function names, equal to `funcs-known_funcs`.

    > `undefined_read`

    >   The set of all unknown variables whose values are read before they are written to. If this set is nonempty it usually indicates an error, since a variable that is read should either have been defined in the code block (in which case it will appear in `newly_defined`) or already be known.

    > `newly_defined`

    >   The set of all variable names which are newly defined in this abstract code block.