View Source on Github

Inherits from

CodeBlock, Expression, Editable

Attributes

assignment_statements

Returns list of top level assignment statements in the code block.

assignments

Returns all assignments in the code block across all nesting levels.

attributes

Returns a list of top level class attribute statements in the code block.

comments

Gets list of top level comments in the code block.

extended

Returns a SymbolGroup of all extended nodes associated with this element.

extended_source

str

Returns the source text representation of all extended nodes.

file

The file object that this Editable instance belongs to.

file_node_id

NodeId

filepath

str

The file path of the file that this Editable instance belongs to.

function_calls

list[ FunctionCall ]

Returns a list of all function calls in the code block.

if_blocks

Returns a list of top level if statements in the code block.

level

int

local_var_assignments

Returns all local variable assignment in the code block, for all nest levels.

node_type

NodeType

parent

parent_block

CodeBlock | None

parent_class

Class | None

Find the class this node is contained in

parent_function

Function | None

Find the function this node is contained in

parent_statement

Statement | None

Find the statement this node is contained in

resolved_value

Returns the resolved type of an Expression.

return_statements

Gets all return statements at the top level of the code block.

source

str

Text representation of the Editable instance.

statements

Gets a view of the top-level statements in the code block.

symbol_statements

Returns list of top level symbol statements in the code block.

ts_node

TSNode

variable_usages

list[ Editable ]

Returns Editables for all TreeSitter node instances of variable usages within this node's

Methods

ancestors

Find all ancestors of the node of the given type. Does not return itself

View Source on Github

Returns

list[ Editable ]

edit

Replace the source of this Editable with new_src.

View Source on Github

Parameters

new_src
str
required

The new source text to replace the current text with.

fix_indentation
bool
default:False

If True, adjusts the indentation of `new_src` to match the current text's indentation level. Defaults to False.

priority
int
default:0

The priority of the edit transaction. Higher priority edits are applied first. Defaults to 0.

dedupe
bool
default:True

If True, deduplicates identical transactions. Defaults to True.

Returns

None

find

Find and return matching nodes or substrings within an Editable instance.

View Source on Github

Parameters

strings_to_match
Union[list[str], str]
required

One or more strings to search for.

exact
bool
default:False

If True, only return nodes whose source exactly matches one of the strings_to_match.

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

View Source on Github

Parameters

strings_to_match
list[str]
required

A list of strings to search for in string literals.

fuzzy_match
bool
default:False

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.

View Source on Github

Returns

CodeFlag[ TSCodeBlock ]

get_assignments

Returns a list of assignments with the specified variable name.

View Source on Github

Parameters

var_name
str
required

The name of the variable to find assignments for.

Returns

A list of Assignment objects that match the variable name.

get_attributes

Returns attributes from the code block, with the option to include or exclude private

View Source on Github

Parameters

private
bool
required

Whether to include private attributes in the returned list. If True, returns both private and

Returns

A list of attribute statements matching the privacy criteria.

get_comment

Gets the first comment statement containing a specific text string.

View Source on Github

Parameters

comment_src
str
required

The text string to search for within comment statements.

Returns

The first comment statement containing the search text, or None if no matching comment is found.

get_local_var_assignment

Returns the first code statement that assigns a local variable with the specified name.

View Source on Github

Parameters

var_name
str
required

The name of the local variable to search for.

Returns

The first matching local variable assignment, or None if no match is found.

get_local_var_assignments

Returns all instances of local variable assignments that match the specified variable

View Source on Github

Parameters

var_name
str
required

The name of the local variable to search for.

fuzzy_match
bool, optional
default:False

If True, matches variables whose names contain var_name.

Returns

List of Assignment objects representing local variable assignments that match the specified name criteria.

get_statements

Returns all statements of a given type up to the specified block level.

View Source on Github

Parameters

statement_type
default:None

The type of statements to return. If None, returns all statement types.

max_level
int | None
default:None

The maximum block depth level to search. If None, searches all levels.

Returns

get_variable_usages

Returns all instances of variable usages in a code block.

View Source on Github

Parameters

var_name
str
required

The name of the variable to search for.

fuzzy_match
bool
default:False

When True, matches on variable names that contain var_name. When False (default), only matches exact variable names.

Returns

A sorted list of variable usage instances as Editable objects.

indent

Adjusts the indentation level of the entire code block.

View Source on Github

Parameters

level
int
required

The number of indentation levels to adjust. Positive values indent right, negative values indent left.

Returns

None

insert_after

Inserts source code at the bottom of the code block.

View Source on Github

Parameters

new_src
str
required

The source code to insert.

fix_indentation
bool
default:True

Whether to fix the indentation of the inserted code. Defaults to True.

newline
bool
default:True

Whether to add a newline before the inserted code. Defaults to True.

Returns

None

insert_before

Inserts new source code at the top of the code block.

View Source on Github

Parameters

new_src
str
required

The source code to insert at the top of the code block.

Returns

None

is_wrapped_in

Check if this node is contained another node of the given class

View Source on Github

Returns

bool

parent_of_type

Find the first ancestor of the node of the given type. Does not return itself

View Source on Github

Returns

Editable | None

reduce_condition

Reduces an editable to the following condition

View Source on Github

Returns

None

remove

Deletes this Node and its related extended nodes (e.g. decorators, comments).

View Source on Github

Parameters

delete_formatting
bool
default:True

Whether to delete surrounding whitespace and formatting. Defaults to True.

priority
int
default:0

Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0.

dedupe
bool
default:True

Whether to deduplicate removal transactions at the same location. Defaults to True.

Returns

None

rename_variable_usages

Renames all instances of variable usages in the code block.

View Source on Github

Parameters

old_var_name
str
required

The current name of the variable to rename.

new_var_name
str
required

The new name to give the variable.

fuzzy_match
bool
default:False

When True, matches variables containing old_var_name. When False, only exact matches. Defaults to False.

Returns

None

This method mutates the code block in place.

replace

Search and replace occurrences of text within this node’s source and its extended nodes.

View Source on Github

Parameters

old
str
required

The text or pattern to search for.

new
str
required

The text to replace matches with.

count
int, optional
default:-1

Maximum number of replacements to make. Defaults to -1 (replace all).

is_regex
bool, optional
default:False

Whether to treat 'old' as a regex pattern. Defaults to False.

priority
int, optional
default:0

Priority of the replacement operation. Defaults to 0.

Returns

int

The total number of replacements made.

Returns a list of all regex match of regex_pattern, similar to python’s re.search().

View Source on Github

Parameters

regex_pattern
str
required

The regular expression pattern to search for.

include_strings
bool
default:True

When False, excludes the contents of string literals from the search. Defaults to True.

include_comments
bool
default:True

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.

unwrap

Unwraps a code block by removing its opening and closing braces.

View Source on Github

Returns

None

wrap

Wraps a code block with a statement and indents it.

View Source on Github

Parameters

before_src
str
required

The source code to insert before the block.

after_src
str
default:""

The source code to insert after the block. Defaults to an empty string.

Returns

None

Was this page helpful?