Documentation menu

Class

Abstract representation of a Class definition.

View source on GitHub

Inherits from

HasBlock, Callable, Expression, Usable, Symbol, Editable, Importable, HasName

Attributes


call_sites


Returns all call sites (invocations) of this callable in the codebase.

code_block


The block of code associated with the code object.

comment


Returns the comment group associated with the symbol, if any.

constructor


Returns the constructor method for this class.

decorators


Returns list of all decorators on this Symbol.

docstring


Retrieves the docstring of the expression.

extended


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

extended_nodes


Returns a list of Editable nodes associated with this symbol, including extended symbols.

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.

full_name


Returns the full name of the object, including the namespace path.

function_calls


Returns all function calls within the code block and its decorators.

inline_comment


Returns the inline comment group associated with the symbol, if any.

is_decorated


Check if the symbol has decorators.

is_subclass


Indicates whether the current class is a subclass of another class.

name


Retrieves the base name of the object without namespace prefixes.

nested_classes


Retrieves the nested classes defined within this class.

parameters


Retrieves all parameters of a callable symbol.

parent


The parent node of this Editable instance.

parent_class


Find the class this node is contained in

parent_class_names


Returns a list of the parent class names that this class inherits from.

parent_classes


The parent classes of this class, if any.

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_type


The type of value returned by the callable, or a placeholder.

source


Returns the source code of the symbol.

symbol_type


The type of symbol, set to SymbolType.Class.

type_parameters


The type parameters of the symbol, if any.

variable_usages


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

Methods


add_attribute

Adds an attribute to a class from another class.

View source on GitHub

Parameters

attributerequired

The attribute to add to the class.

include_dependenciesdefault: False

Whether to include the attribute's dependencies. If True, adds any necessary imports to the class's file. Defaults to False.

Returns

add_attribute_from_source

Adds an attribute to a class from raw source code, placing it in a specific location

View source on GitHub

Parameters

sourcerequired

The source code of the attribute to be added.

Returns

add_comment

Adds a comment to the symbol.

View source on GitHub

Parameters

commentrequired

The comment text to add.

Returns

add_decorator

Adds a decorator to a function or method.

View source on GitHub

Parameters

new_decoratorrequired

The decorator to add, including the '@' symbol.

skip_if_existsdefault: False

If True, skips adding if the decorator exists.

Returns

True if the decorator was added, False if skipped.

add_keyword

Insert a keyword in the appropriate place before this symbol if it doesn't already exist.

View source on GitHub

Parameters

keywordrequired

The keyword to be inserted. Must be a valid keyword in the language context.

Returns

add_source

Add a block of source code to the bottom of a class definition.

View source on GitHub

Parameters

sourcerequired

The source code to be added to the class definition. The code should be properly formatted

Returns

ancestors

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

View source on GitHub

Returns

attributes

Retrieves all attributes from this Class including those from its superclasses up to a

View source on GitHub

Parameters

max_depthdefault: 0

The maximum depth of superclass traversal. None means no limit, 0 means only this class.

privatedefault: True

Whether to include private attributes. Defaults to True.

Returns

A list of unique attributes from this class and its superclasses. If an attribute is defined in multiple classes, the first definition encountered is used.

dependencies

Returns a list of symbols that this symbol depends on.

View source on GitHub

Parameters

usage_typesdefault: UsageType.DIRECT

The types of dependencies to search for. Defaults to UsageType.DIRECT.

max_depthdefault: None

Maximum depth to traverse in the dependency graph. If provided, will recursively collect

Returns

A list of symbols and imports that this symbol depends on, sorted by file location.

edit

Replace the source of this node with new_src.

View source on GitHub

Parameters

new_srcrequired

The new source code to replace the current source with.

fix_indentationdefault: False

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

prioritydefault: 0

The priority of this edit. Higher priority edits take precedence. Defaults to 0.

dedupedefault: True

If True, prevents duplicate edits. Defaults to True.

Returns

find

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

View source on GitHub

Parameters

strings_to_matchrequired

One or more strings to search for.

exactdefault: False

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

View source on GitHub

Parameters

strings_to_matchrequired

A list of strings to search for in string literals.

fuzzy_matchdefault: False

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.

View source on GitHub

Returns

get_attribute

Returns a specific attribute by name.

View source on GitHub

Parameters

namerequired

The name of the attribute to search for.

Returns

The matching attribute if found, None otherwise. If multiple attributes with the same name exist in the inheritance hierarchy, returns the first one found.

get_method

Returns a specific method by name from the class or any of its superclasses.

View source on GitHub

Parameters

namerequired

The name of the method to find.

Returns

The method if found, None otherwise.

get_name

Returns the name node of the object.

View source on GitHub

Returns

The name node of the object. Can be a Name node for simple names, a ChainedAttribute for names with namespaces (e.g., a.b), or None if the object has no name.

get_nested_class

Returns a nested class by name from the current class.

View source on GitHub

Parameters

namerequired

The name of the nested class to find.

Returns

The nested class if found, None otherwise.

get_parameter

Gets a specific parameter from the callable's parameters list by name.

View source on GitHub

Parameters

namerequired

The name of the parameter to retrieve.

Returns

The parameter with the specified name, or None if no parameter with that name exists or if there are no parameters.

get_parameter_by_index

Returns the parameter at the given index.

View source on GitHub

Parameters

indexrequired

The index of the parameter to retrieve.

Returns

The parameter at the specified index, or None if the parameter list is empty or the index does not exist.

get_parameter_by_type

Retrieves a parameter from the callable by its type.

View source on GitHub

Parameters

typerequired

The type to search for.

Returns

The parameter with the specified type, or None if no parameter is found or if the callable has no parameters.

get_parent_class

Returns the parent class node with the specified name.

View source on GitHub

Parameters

parent_class_namerequired

The name of the parent class to find.

Returns

The matching parent class node, or None if no match is found.

get_variable_usages

Returns Editables for all TreeSitter nodes corresponding to instances of variable usage

View source on GitHub

Parameters

var_namerequired

The variable name to search for.

fuzzy_matchdefault: False

If True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.

Returns

List of Editable objects representing variable usage nodes matching the given name.

insert_after

Inserts code after this node.

View source on GitHub

Parameters

new_srcrequired

The source code to insert after this node.

fix_indentationdefault: False

Whether to adjust the indentation of new_src to match the current node. Defaults to False.

newlinedefault: True

Whether to add a newline before the new_src. Defaults to True.

prioritydefault: 0

Priority of the insertion transaction. Defaults to 0.

dedupedefault: True

Whether to deduplicate identical transactions. Defaults to True.

Returns

insert_before

Inserts text before the current symbol node in the Abstract Syntax Tree.

View source on GitHub

Parameters

new_srcrequired

The source code text to insert.

fix_indentationdefault: False

Whether to adjust the indentation of new_src to match current text. Defaults to False.

newlinedefault: True

Whether to add a newline after insertion. Defaults to True.

prioritydefault: 0

Priority of this edit operation. Higher priority edits are applied first. Defaults to 0.

dedupedefault: True

Whether to remove duplicate insertions. Defaults to True.

extendeddefault: True

Whether to insert before extended nodes like comments and decorators. Defaults to True.

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_subclass_of

Checks if the class inherits from a specified parent class.

View source on GitHub

Parameters

parent_classrequired

The parent class to check for. Can be specified either as a class name string or Class object.

max_depthdefault: None

Maximum inheritance depth to search. None means no limit.

Returns

True if this class inherits from the parent class, False otherwise.

is_wrapped_in

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

View source on GitHub

Returns

methods

Retrieves all methods that exist on this Class, including methods from superclasses, with

View source on GitHub

Parameters

max_depthdefault: 0

Include parent classes up to max_depth. None means no limit, 0 means only current class. Defaults to 0.

privatedefault: True

Whether to include private methods. Defaults to True.

magicdefault: True

Whether to include magic methods. Defaults to False.

Returns

move_to_file

Moves the given symbol to a new file and updates its imports and references.

View source on GitHub

Parameters

filerequired

The destination file to move the symbol to.

include_dependenciesdefault: True

If True, moves all dependencies of the symbol to the new file. If False, adds imports for the dependencies. Defaults to True.

strategydefault: "update_all_imports"

The strategy to use for updating imports. Can be either 'add_back_edge' or 'update_all_imports'. Defaults to 'update_all_imports'.

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: True

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

prioritydefault: 0

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

dedupedefault: True

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

Returns

rename

Renames a symbol and updates all its references in the codebase.

View source on GitHub

Parameters

new_namerequired

The new name for the symbol.

prioritydefault: 0

Priority of the edit operation. Defaults to 0.

Returns

A tuple containing the file node ID and the new node ID of the renamed symbol.

replace

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

View source on GitHub

Parameters

oldrequired

The text or pattern to search for.

newrequired

The text to replace matches with.

countdefault: -1

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

is_regexdefault: False

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

prioritydefault: 0

Priority of the replacement operation. Defaults to 0.

Returns

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_patternrequired

The regular expression pattern to search for.

include_stringsdefault: True

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

include_commentsdefault: True

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

Returns

A list of Editable objects corresponding to the matches found.

set_comment

Sets a comment to the symbol.

View source on GitHub

Parameters

commentrequired

The comment text to set.

Returns

set_docstring

Sets or updates the docstring for the current entity.

View source on GitHub

Parameters

docstringrequired

The new docstring content to set.

Returns

This method doesn't return anything.

set_inline_comment

Sets an inline comment to the symbol.

View source on GitHub

Parameters

commentrequired

The text of the inline comment to be added or updated.

Returns

set_name

Sets the name of a code element.

View source on GitHub

Parameters

namerequired

The new name to set for the object.

Returns

subclasses

Returns all classes which subclass this class.

View source on GitHub

Parameters

max_depthdefault: None

Maximum inheritance depth to search. If None, searches all depths. Defaults to None.

Returns

A list of Class objects that inherit from this class.

superclasses

Returns a list of all classes that this class extends, up to max_depth.

View source on GitHub

Parameters

max_depthdefault: None

The maximum depth to traverse up the inheritance tree. If None, traverses the entire tree.

Returns

A list of all superclass symbols in MRO order, up to max_depth. Returns an empty list if the class has no parent classes.

symbol_usages

Returns a list of symbols that use or import the exportable object.

View source on GitHub

Parameters

usage_typesdefault: None

The types of usages to search for. Defaults to any.

Returns

A list of symbols that use or import the exportable object.

usages

Returns a list of usages of the exportable object.

View source on GitHub

Parameters

usage_typesdefault: None

Specifies which types of usages to include in the results. Default is any usages.

Returns

A sorted list of Usage objects representing where this exportable is used, ordered by source location in reverse.