blark.summary.CodeSummary

class blark.summary.CodeSummary(functions: ~typing.Dict[str, ~blark.summary.FunctionSummary] = <factory>, function_blocks: ~typing.Dict[str, ~blark.summary.FunctionBlockSummary] = <factory>, data_types: ~typing.Dict[str, ~blark.summary.DataTypeSummary] = <factory>, programs: ~typing.Dict[str, ~blark.summary.ProgramSummary] = <factory>, globals: ~typing.Dict[str, ~blark.summary.GlobalVariableSummary] = <factory>, interfaces: ~typing.Dict[str, ~blark.summary.InterfaceSummary] = <factory>)[source]

Bases: object

Summary representation of a set of code - functions, function blocks, etc.

Methods

__init__([functions, function_blocks, ...])

append(other[, namespace])

In-place add code summary information from another instance.

find(name)

Find a declaration or other item by its qualified name.

find_code_object_by_dotted_name(name)

Given a qualified code object name, find its Summary object(s).

find_path(name[, allow_partial])

Given a qualified variable name, find the path of CodeSummary objects top-down.

from_parse_results(all_parsed_items[, squash])

get_all_items_by_name(name)

Get any code item (function, data type, global variable, etc.) by name.

get_item_by_name(name)

Get a single code item (function, data type, global variable, etc.) by name.

squash()

Squash derived interfaces/etc to include base summaries.

Attributes

functions

function_blocks

data_types

programs

globals

interfaces

functions: Dict[str, FunctionSummary]
function_blocks: Dict[str, FunctionBlockSummary]
data_types: Dict[str, DataTypeSummary]
programs: Dict[str, ProgramSummary]
globals: Dict[str, GlobalVariableSummary]
interfaces: Dict[str, InterfaceSummary]
find(name: str) FunctionSummary | FunctionBlockSummary | DataTypeSummary | ProgramSummary | InterfaceSummary | GlobalVariableSummary | DeclarationSummary | MethodSummary | PropertySummary | ActionSummary | PropertyGetSetSummary | None[source]

Find a declaration or other item by its qualified name.

find_path(name: str, allow_partial: bool = False) List[FunctionSummary | FunctionBlockSummary | DataTypeSummary | ProgramSummary | InterfaceSummary | GlobalVariableSummary | DeclarationSummary | MethodSummary | PropertySummary | ActionSummary | PropertyGetSetSummary] | None[source]

Given a qualified variable name, find the path of CodeSummary objects top-down.

For example, a variable declared in a function block would return a list containing the FunctionBlockSummary and then the DeclarationSummary.

Parameters:
namestr

The qualified (“dotted”) variable name to find.

allow_partialbool, optional

If an attribute is missing along the way, return the partial path that was found.

Returns:
list of CodeSummaryType or None

The full path to the given object.

find_code_object_by_dotted_name(name: str) FunctionSummary | FunctionBlockSummary | DataTypeSummary | ProgramSummary | InterfaceSummary | GlobalVariableSummary | DeclarationSummary | MethodSummary | PropertySummary | ActionSummary | PropertyGetSetSummary | None[source]

Given a qualified code object name, find its Summary object(s).

This works to find CodeSummary objects such as:

FB_Block.ActionName
FB_Block.PropertyName.get
FB_Block.PropertyName.set
get_all_items_by_name(name: str) Generator[FunctionSummary | FunctionBlockSummary | DataTypeSummary | ProgramSummary | InterfaceSummary | GlobalVariableSummary, None, None][source]

Get any code item (function, data type, global variable, etc.) by name.

get_item_by_name(name: str) FunctionSummary | FunctionBlockSummary | DataTypeSummary | ProgramSummary | InterfaceSummary | GlobalVariableSummary | None[source]

Get a single code item (function, data type, global variable, etc.) by name.

Does not handle scenarios where names are shadowed by other declarations. The first one found will take precedence.

append(other: CodeSummary, namespace: str | None = None)[source]

In-place add code summary information from another instance.

New entries take precedence over old ones.

static from_parse_results(all_parsed_items: ParseResult | list[ParseResult], squash: bool = True) CodeSummary[source]
squash() None[source]

Squash derived interfaces/etc to include base summaries.

__init__(functions: ~typing.Dict[str, ~blark.summary.FunctionSummary] = <factory>, function_blocks: ~typing.Dict[str, ~blark.summary.FunctionBlockSummary] = <factory>, data_types: ~typing.Dict[str, ~blark.summary.DataTypeSummary] = <factory>, programs: ~typing.Dict[str, ~blark.summary.ProgramSummary] = <factory>, globals: ~typing.Dict[str, ~blark.summary.GlobalVariableSummary] = <factory>, interfaces: ~typing.Dict[str, ~blark.summary.InterfaceSummary] = <factory>) None