PyCodeBlock
Extends CodeBlock for Python codebases.
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
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
parent_class
Find the class this node is contained in
parent_function
Find the function this node is contained in
parent_statement
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
Returns Editables for all TreeSitter node instances of variable usages within this node's
with_statements
Returns a list of all 'with' statements within the code block.
Methods
ancestors
Find all ancestors of the node of the given type. Does not return itself
Returns
edit
Replace the source of this Editable
with new_src
.
Parameters
str
The new source text to replace the current text with.
bool
If True, adjusts the indentation of `new_src` to match the current text's indentation level. Defaults to False.
int
The priority of the edit transaction. Higher priority edits are applied first. Defaults to 0.
bool
If True, deduplicates identical transactions. Defaults to True.
Returns
None
find
Find and return matching nodes or substrings within an Editable instance.
Parameters
Union[list[str], str]
One or more strings to search for.
bool
If True, only return nodes whose source exactly matches one of the strings_to_match.
Returns
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
Parameters
list[str]
A list of strings to search for in string literals.
bool
If True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.
Returns
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.
Returns
get_assignments
Returns a list of assignments with the specified variable name.
Parameters
str
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
Parameters
bool
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.
Parameters
str
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.
Parameters
str
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
Parameters
str
The name of the local variable to search for.
bool, optional
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.
Parameters
The type of statements to return. If None, returns all statement types.
int | 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.
Parameters
str
The name of the variable to search for.
bool
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.
get_with_statements
Gets with statements at a specific block level.
Parameters
int
The block level to filter by. 0 represents the top level.
Returns
A list of WithStatement objects at the specified block level.
indent
Adjusts the indentation level of the entire code block.
Parameters
int
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.
Parameters
str
The source code to insert.
bool
Whether to fix the indentation of the inserted code. Defaults to True.
bool
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.
Parameters
str
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
Returns
bool
parent_of_type
Find the first ancestor of the node of the given type. Does not return itself
Returns
reduce_condition
Reduces an editable to the following condition
Returns
None
remove
Deletes this Node and its related extended nodes (e.g. decorators, comments).
Parameters
bool
Whether to delete surrounding whitespace and formatting. Defaults to True.
int
Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0.
bool
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.
Parameters
str
The current name of the variable to rename.
str
The new name to give the variable.
bool
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.
Parameters
str
The text or pattern to search for.
str
The text to replace matches with.
int, optional
Maximum number of replacements to make. Defaults to -1 (replace all).
bool, optional
Whether to treat 'old' as a regex pattern. Defaults to False.
int, optional
Priority of the replacement operation. Defaults to 0.
Returns
int
The total number of replacements made.
search
Returns a list of all regex match of regex_pattern
, similar to python’s re.search().
Parameters
str
The regular expression pattern to search for.
bool
When False, excludes the contents of string literals from the search. Defaults to True.
bool
When False, excludes the contents of comments from the search. Defaults to True.
Returns
A list of Editable objects corresponding to the matches found.
unwrap
Extracts a code block from its parent wrapper container by removing the wrapping
Returns
None
wrap
Wraps a code block with a statement and indents it.
Parameters
str
The source code to insert before the block.
str
The source code to insert after the block. Defaults to an empty string.
Returns
None