TryCatchStatement
Abstract representation of the try catch statement block. Attributes: code_block: The code block that may trigger an exception finalizer: The code block executed regardless of if an exception is thrown or not
Inherits from
HasBlock, BlockStatement, Expression, Statement, Editable
Properties
decorators
Returns list of all decorators on this Symbol.
Gets all decorators associated with a code entity (function, class, method).
Returns: list[TDecorator]: A list of Decorator objects. Empty list if no decorators are present.
docstring
Retrieves the docstring of the expression.
Gets the docstring associated with this code object (e.g., function, class) as a CommentGroup. If no docstring exists, returns None.
Returns: CommentGroup | None: The docstring as a CommentGroup if it exists, None otherwise.
extended
Returns a SymbolGroup of all extended nodes associated with this element.
Creates a SymbolGroup that provides a common interface for editing all extended nodes, such as decorators, modifiers, and comments associated with the element.
Args: None
Returns: SymbolGroup: A group containing this node and its extended nodes that allows batch modification through a common interface.
extended_source
Returns the source text representation of all extended nodes.
Gets the source text of all extended nodes combined. This property allows reading the source text of all extended nodes (e.g. decorators, export statements) associated with this node.
Returns: str: The combined source text of all extended nodes.
file
The file object that this Editable instance belongs to.
Retrieves or caches the file object associated with this Editable instance.
Returns: File: The File object containing this Editable instance.
filepath
The file path of the file that this Editable instance belongs to.
Returns a string representing the absolute file path of the File that contains this Editable instance.
Returns: str: The absolute file path.
function_calls
Returns all function calls within the code block and its decorators.
Args: None
Returns: list[FunctionCall]: A sorted list of FunctionCall objects representing all function calls in the code block and its decorators. The list may contain duplicates.
index
The 0-based index of the statement in the parent code block.
Returns the sequential position of this statement within its containing code block.
Returns: int: The 0-based index of this statement within its parent code block.
is_decorated
Returns whether the symbol has any decorators.
A helper method that checks if this symbol (a function, class, or method) has any decorators applied to it. This method is used to determine if code analysis or transformations should be applied based on the presence of decorators.
Returns: bool: True if the symbol has one or more decorators, False otherwise.
nested_code_blocks
Returns all nested CodeBlocks within the statement.
Gets all nested CodeBlocks contained within this BlockStatement. A BlockStatement may contain at most one code block.
Args: None
Returns: list[TCodeBlock]: A list containing the statement’s code block if it exists, otherwise an empty list.
nested_statements
Returns a list of statement collections within nested code blocks.
Accesses and retrieves the statements from each code block nested within the current statement, such as the statements within if/else branches or loop bodies.
Returns: list[MultiLineCollection[Statement[Parent, TCodeBlock], Parent]]: A list where each element is a collection of statements from one nested code block. Returns an empty list if there are no nested code blocks.
resolved_value
Returns the resolved value of an Expression.
Returns the last assigned expression value if the expression is resolvable, otherwise returns itself. For example, if ‘b = a’ where ‘a = 1’, resolving ‘b’ returns 1.
Returns: Union[Expression, list[Expression]]: The resolved expression value(s). Returns a single Expression if there is only one resolved value, or a list of Expressions if there are multiple resolved values. Returns self if the expression is not resolvable or has no resolved types.
source
Text representation of the Editable instance.
Returns the source text of the Editable instance. This is the main property used to access the text content of any code element in GraphSitter.
Returns: str: The text content of this Editable instance.
variable_usages
Returns Editables for all TreeSitter node instances of variable usages within this node’s scope.
This method finds all variable identifier nodes in the TreeSitter AST, excluding:
- Function names in function calls
- Import names in import statements
- Property access identifiers (except the base object)
- Keyword argument names (in Python and TypeScript)
This is useful for variable renaming and usage analysis within a scope.
Returns: list[Editable]: A list of Editable nodes representing variable usages. Each Editable corresponds to a TreeSitter node instance where the variable is referenced.
Attributes
code_block
The code block that may trigger an exception
finalizer
The code block executed regardless of if an exception is thrown or not
Methods
add_decorator
Adds a decorator to a function or method.
Adds a new decorator to the symbol’s definition. The decorator is inserted before the first non-comment extended node with proper indentation.
Args: new_decorator (str): The decorator to add. Should be a complete decorator string including the ’@’ symbol. skip_if_exists (bool, optional): If True, will not add the decorator if it already exists. Defaults to False.
Returns: bool: True if the decorator was added, False if skipped due to existing decorator.
commit
Commits any pending transactions for the current node to the codebase.
Commits only the transactions that affect the file this node belongs to. This is useful when you want to commit changes made to a specific node without committing all pending transactions in the codebase.
Args: None
Returns: None
edit
Replace the source of this Editable
with new_src
.
Replaces the text representation of this Editable instance with new text content. The method handles indentation adjustments and transaction management.
Args:
new_src (str): The new source text to replace the current text with.
fix_indentation (bool): If True, adjusts the indentation of new_src
to match the current text’s indentation level. Defaults to False.
priority (int): The priority of the edit transaction. Higher priority edits are applied first. Defaults to 0.
dedupe (bool): If True, deduplicates identical transactions. Defaults to True.
Returns: None
find
Find and return matching nodes or substrings within an Editable instance.
This method searches through the extended_nodes of the Editable instance and returns all nodes or substrings that match the given search criteria.
Args: strings_to_match (Union[list[str], str]): One or more strings to search for. exact (bool): If True, only return nodes whose source exactly matches one of the strings_to_match. If False, return nodes that contain any of the strings_to_match as substrings. Defaults to False.
Returns: list[Editable]: A list of Editable instances that match the search criteria.
find_string_literals
Returns a list of string literals within this node’s source that match any of the given strings.
Args: strings_to_match (list[str]): A list of strings to search for in string literals. fuzzy_match (bool): If True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.
Returns: list[Editable]: A list of Editable objects representing the matching string literals.
flag
Adds a visual flag comment to the end of this Editable’s source text.
Flags this Editable by appending a comment with emoji flags at the end of its source text. This is useful for visually highlighting specific nodes in the source code during development and debugging.
Returns: None
get_variable_usages
Returns Editables for all TreeSitter nodes corresponding to instances of variable usage that matches the given variable name.
Retrieves a list of variable usages that match a specified name, with an option for fuzzy matching. By default, excludes property identifiers and argument keywords.
Args: var_name (str): The variable name to search for. fuzzy_match (bool): If True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.
Returns: list[Editable]: List of Editable objects representing variable usage nodes matching the given name.
insert_after
Inserts code after this node.
Args: new_src (str): The source code to insert after this node. fix_indentation (bool, optional): Whether to adjust the indentation of new_src to match the current node. Defaults to False. newline (bool, optional): Whether to add a newline before the new_src. Defaults to True. priority (int, optional): Priority of the insertion transaction. Defaults to 0. dedupe (bool, optional): Whether to deduplicate identical transactions. Defaults to True.
Returns: None
insert_before
Inserts text before this node’s source with optional indentation and newline handling.
This method inserts the provided text before the current node’s source code. It can automatically handle indentation and newline placement.
Args: new_src (str): The text to insert before this node. fix_indentation (bool): Whether to fix the indentation of new_src to match the current node. Defaults to False. newline (bool): Whether to add a newline after new_src. Defaults to True. priority (int): Transaction priority for managing multiple edits. Defaults to 0. dedupe (bool): Whether to deduplicate identical transactions. Defaults to True.
Returns: None
reduce_condition
Reduces an editable to the following condition
remove
Deletes this Node and its related extended nodes (e.g. decorators, comments).
Removes the current node and its extended nodes (e.g. decorators, comments) from the codebase. After removing the node, it handles cleanup of any surrounding formatting based on the context.
Args: delete_formatting (bool): Whether to delete surrounding whitespace and formatting. Defaults to True. priority (int): Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0. dedupe (bool): Whether to deduplicate removal transactions at the same location. Defaults to True.
Returns: None
replace
Search and replace occurrences of text within this node’s source and its extended nodes.
This method performs string replacement similar to Python’s string.replace(), with support for regex patterns. It operates on both the main node and any extended nodes (e.g. decorators, exports).
Args: old (str): The text or pattern to search for. new (str): The text to replace matches with. count (int, optional): Maximum number of replacements to make. Defaults to -1 (replace all). is_regex (bool, optional): Whether to treat ‘old’ as a regex pattern. Defaults to False. priority (int, optional): Priority of the replacement operation. Defaults to 0.
Returns: int: The total number of replacements made.
Raises: ValueError: If there are multiple occurrences of the substring in a node’s source.
search
Returns a list of all regex match of regex_pattern
, similar to python’s re.search().
Searches for matches of a regular expression pattern within the text of this node and its extended nodes.
Args: regex_pattern (str): The regular expression pattern to search for. include_strings (bool): When False, excludes the contents of string literals from the search. Defaults to True. include_comments (bool): When False, excludes the contents of comments from the search. Defaults to True.
Returns: list[Editable]: A list of Editable objects corresponding to the matches found.
set_docstring
Sets or updates the docstring for the current entity.
Modifies the entity’s docstring by either replacing an existing one or creating a new one.
Args: docstring (str): The new docstring content to set.
Returns: None: This method doesn’t return anything.
Was this page helpful?