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.
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: 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]
- __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