PyUnionType
Union type Examples: str | int
Inherits from
UnionType, Type, Expression, SymbolGroup, Editable
Properties
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 a list of all function calls contained within this expression.
Traverses the extended nodes of this expression to find all function calls within it. This is useful for tasks like analyzing call patterns or renaming function invocations.
Returns: list[FunctionCall]: A list of FunctionCall objects representing all function calls contained within this expression.
next_named_sibling
Returns the next named sibling of the symbol group.
Returns the next named sibling node of the last symbol in the group. A named sibling is a node that has a name field in the syntax tree.
Returns: Editable | None: The next named sibling node, or None if there is no next named sibling.
next_sibling
Returns the next sibling of the last symbol in the symbol group.
Provides access to the next sibling node of the last symbol in this symbol group. This property follows the tree structure of the AST.
Returns: Editable | None: The next sibling node of the last symbol in the group, or None if there is no next sibling.
resolved_value
Returns the resolved type of an Expression.
Returns the inferred type of the expression. For example a function call’s resolved value will be it’s definition.
Returns: Union[Expression, list[Expression]]: The resolved expression type(s). Returns a single Expression if there is only one resolved type, or a list of Expressions if there are multiple resolved types. Returns self if the expression is not resolvable or has no resolved types.
source
Get the source code content of the node.
Retrieves the underlying source code content associated with this node as stored in the _source attribute.
Returns: str: The source code content of the node.
symbols
Returns the list of symbols in the group.
Gets the list of symbols associated with this SymbolGroup. These symbols can be code elements like functions, classes, or variables that form a logical grouping.
Returns: list[Child]: A list of symbol objects that belong to this group.
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.
Methods
edit
Edit the source for this Collection instance.
This method is used to update the source of a Collection while preserving its start and end brackets. It is primarily used internally by Collection to maintain structural integrity during edits.
Args: *args: Variable length argument list passed to the parent Editable class’s edit method. **kwargs: Arbitrary keyword arguments passed to the parent Editable class’s edit method.
Returns: None
find
Search through the given Symbol(s) for all substrings that match strings_to_match
.
Similar to python’s str.find(..)
, this method searches through the source code of the symbol group for matches of the provided strings.
Args: strings_to_match (Union[list[str], str]): The string or list of strings to search for. exact (bool): When True, only return nodes that exactly match the query. Defaults to False.
Returns: list[Editable]: A list of Editable objects representing each match found.
find_string_literals
Searches for string literals within this SymbolGroup that match the given strings.
Iterates through all symbols in the group and aggregates the results of finding string literals in each symbol.
Args: strings_to_match (list[str]): List of strings to search for in string literals. fuzzy_match (bool, optional): If True, performs fuzzy matching instead of exact matching. Defaults to False.
Returns: list[Editable]: List of Editable nodes representing the matching string literals found within the symbols.
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.
index
Return the index of the first occurrence of value.
Returns -1 if value is not present.
insert
Adds value
to the container that this node represents
Args:
value: source to add
index: If provided, the value
will be inserted at that index, otherwise will default to end of the list.
insert_after
Inserts source code after this node in the codebase.
If the symbol group is empty or the ts_node doesn’t match the first symbol’s ts_node, inserts after the group. Otherwise, inserts after the last symbol in the group.
Args: new_src (str): The source code to insert. fix_indentation (bool, optional): Whether to adjust indentation of new source to match current text. Defaults to False. newline (bool, optional): Whether to add a newline before the inserted code. Defaults to True. priority (int, optional): Priority of the edit operation. Defaults to 0. dedupe (bool, optional): Whether to deduplicate identical edits. Defaults to True.
Returns: None
insert_before
Inserts source code before this symbol group.
Inserts the provided source code before the first symbol in the group, while maintaining proper code formatting.
Args: new_src (str): The source code to insert. fix_indentation (bool, optional): Whether to adjust the indentation of the inserted code to match the current code. Defaults to False. newline (bool, optional): Whether to add a newline after the inserted code. Defaults to True. priority (int, optional): The priority of this edit operation. Higher priority edits are applied first. Defaults to 0. dedupe (bool, optional): Whether to prevent duplicate insertions of the same code. Defaults to True.
Returns: None
is_wrapped_in
Check if this node is contained another node of the given class
json
reduce_condition
Reduces an editable to the following condition
remove
Removes an element from a Collection.
Deletes the specified element from the Collection by calling its remove method. If no value is specified, delegates to the parent class’s remove method.
Args: value (Child | None): The element to remove from the Collection. If None, delegates to parent class. *args: Variable length argument list to pass to the remove method. **kwargs: Arbitrary keyword arguments to pass to the remove method.
Returns: None: This method doesn’t return anything.
replace
Replaces all instances of a string with a new string in all symbols within the group.
Args: old (str): The string to be replaced. new (str): The string to replace with. count (int, optional): Maximum number of replacements to make. Defaults to -1 (replace all). priority (int, optional): Priority of the replacement operation. Defaults to 0.
Returns: int: Number of replacements made.
search
Returns a list of all regex matches in the codebase that match the given pattern.
Searches through the source code to find text matching a regex pattern, with options to exclude string literals and comments from the search.
Args: regex_pattern (str): The regular expression pattern to search for. include_strings (bool, optional): Whether to include string literals in the search. Defaults to True. include_comments (bool, optional): Whether to include comments in the search. Defaults to True.
Returns: list[Editable]: A list of Editable objects representing matched text nodes in the codebase.
Was this page helpful?