PyCodeBlock
Extends CodeBlock for Python codebases.
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
Returns the source text representation of all extended nodes.
file
The file object that this Editable instance belongs to.
filepath
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
The indentation level of the code block.
local_var_assignments
Returns all local variable assignment in the code block, for all nest levels.
parent
The parent node of this Editable instance.
parent_block
The parent code block containing this block, or None if it is a top-level 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
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.
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
View source on GitHub
Returns
edit
Replace the source of this Editable with new_src.
View source on GitHub
Parameters
new_srcrequiredThe new source text to replace the current text with.
fix_indentationdefault: FalseIf True, adjusts the indentation of `new_src` to match the current text's indentation level. Defaults to False.
prioritydefault: 0The priority of the edit transaction. Higher priority edits are applied first. Defaults to 0.
dedupedefault: TrueIf True, deduplicates identical transactions. Defaults to True.
Returns
find
Find and return matching nodes or substrings within an Editable instance.
View source on GitHub
Parameters
strings_to_matchrequiredOne or more strings to search for.
exactdefault: FalseIf 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
View source on GitHub
Parameters
strings_to_matchrequiredA list of strings to search for in string literals.
fuzzy_matchdefault: FalseIf 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.
View source on GitHub
Returns
get_assignments
Returns a list of assignments with the specified variable name.
View source on GitHub
Parameters
var_namerequiredThe 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
privaterequiredWhether 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_srcrequiredThe 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_namerequiredThe 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_namerequiredThe name of the local variable to search for.
fuzzy_matchdefault: FalseIf 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_typedefault: NoneThe type of statements to return. If None, returns all statement types.
max_leveldefault: NoneThe 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_namerequiredThe name of the variable to search for.
fuzzy_matchdefault: FalseWhen 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.
View source on GitHub
Parameters
levelrequiredThe 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.
View source on GitHub
Parameters
levelrequiredThe number of indentation levels to adjust. Positive values indent right, negative values indent left.
Returns
insert_after
Inserts source code at the bottom of the code block.
View source on GitHub
Parameters
new_srcrequiredThe source code to insert.
fix_indentationdefault: TrueWhether to fix the indentation of the inserted code. Defaults to True.
newlinedefault: TrueWhether to add a newline before the inserted code. Defaults to True.
Returns
insert_before
Inserts new source code at the top of the code block.
View source on GitHub
Parameters
new_srcrequiredThe source code to insert at the top of the code block.
Returns
is_child_of
Checks if this node is a descendant of the given editable instance in the AST.
View source on GitHub
Returns
is_wrapped_in
Check if this node is contained another node of the given class
View source on GitHub
Returns
parent_of_type
Find the first ancestor of the node of the given type. Does not return itself
View source on GitHub
Returns
parent_of_types
Find the first ancestor of the node of the given type. Does not return itself
View source on GitHub
Returns
reduce_condition
Reduces an editable to the following condition
View source on GitHub
Returns
remove
Deletes this Node and its related extended nodes (e.g. decorators, comments).
View source on GitHub
Parameters
delete_formattingdefault: TrueWhether to delete surrounding whitespace and formatting. Defaults to True.
prioritydefault: 0Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0.
dedupedefault: TrueWhether to deduplicate removal transactions at the same location. Defaults to True.
Returns
rename_variable_usages
Renames all instances of variable usages in the code block.
View source on GitHub
Parameters
old_var_namerequiredThe current name of the variable to rename.
new_var_namerequiredThe new name to give the variable.
fuzzy_matchdefault: FalseWhen True, matches variables containing old_var_name. When False, only exact matches. Defaults to False.
Returns
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
oldrequiredThe text or pattern to search for.
newrequiredThe text to replace matches with.
countdefault: -1Maximum number of replacements to make. Defaults to -1 (replace all).
is_regexdefault: FalseWhether to treat 'old' as a regex pattern. Defaults to False.
prioritydefault: 0Priority of the replacement operation. Defaults to 0.
Returns
The total number of replacements made.
search
Returns a list of all regex match of regex_pattern, similar to python's re.search().
View source on GitHub
Parameters
regex_patternrequiredThe regular expression pattern to search for.
include_stringsdefault: TrueWhen False, excludes the contents of string literals from the search. Defaults to True.
include_commentsdefault: TrueWhen 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
View source on GitHub
Returns
wrap
Wraps a code block with a statement and indents it.
View source on GitHub
Parameters
before_srcrequiredThe source code to insert before the block.
after_srcdefault: ""The source code to insert after the block. Defaults to an empty string.