| title | PyClass |
|---|---|
| sidebarTitle | PyClass |
| icon | |
| description | Extends Class for Python codebases |
import {Parameter} from '/snippets/Parameter.mdx'; import {ParameterWrapper} from '/snippets/ParameterWrapper.mdx'; import {Return} from '/snippets/Return.mdx'; import {HorizontalDivider} from '/snippets/HorizontalDivider.mdx'; import {GithubLinkNote} from '/snippets/GithubLinkNote.mdx'; import {Attribute} from '/snippets/Attribute.mdx';
PyHasBlock, PySymbol, Class, HasBlock, Symbol, Callable, Expression, Usable, Editable, Importable, HasName
### call_sites list[ FunctionCall ] } description="Returns all call sites (invocations) of this callable in the codebase." /> PyCodeBlock } description="The block of code associated with the code object." /> PyCommentGroup | None } description="Retrieves the comment group associated with a Python symbol." /> PyFunction | None } description="Returns the constructor method for this class." /> list[ PyDecorator ] } description="Returns a list of decorators associated with this symbol." /> PyCommentGroup | None } description="Gets the function's docstring." /> SymbolGroup } description="Returns a SymbolGroup of all extended nodes associated with this element." /> list[ Editable ] } description="Returns a list of Editable nodes associated with this symbol, including extended symbols." /> str } description="Returns the source text representation of all extended nodes." /> PyFile } description="The file object that this Editable instance belongs to." /> str } description="The file path of the file that this Editable instance belongs to." /> str | None } description="Returns the full name of the object, including the namespace path." /> list[ FunctionCall ] } description="Returns all function calls within the code block and its decorators." /> PyCommentGroup | None } description="Returns the inline comment group associated with this symbol." /> bool } description="Returns whether the symbol is decorated with decorators." /> bool } description="Indicates whether a Python symbol is exported." /> bool } description="Indicates whether the current class is a subclass of another class." /> str | None } description="Retrieves the base name of the object without namespace prefixes." /> list[ PyClass ] } description="Retrieves the nested classes defined within this class." /> SymbolGroup [ PyParameter , PyClass ] | list[ PyParameter ] } description="Retrieves all parameters of a callable symbol." /> Editable } description="The parent node of this Editable instance." /> PyClass | None } description="Find the class this node is contained in" /> list[ Name | PyChainedAttribute ] } description="Returns a list of the parent class names that this class inherits from." /> Parents[ Type , PyClass ] | None } description="The parent classes of this class, if any." /> PyFunction | None } description="Find the function this node is contained in" /> Statement | None } description="Find the statement this node is contained in" /> Expression | list[ Expression ] } description="Returns the resolved type of an Expression." /> Type | Placeholder [ PyClass ] } description="The type of value returned by the callable, or a placeholder." /> str } description="Returns the source code of the symbol." /> } description="The type of symbol, set to SymbolType.Class." /> TypeParameters[ Type , PyClass ] | None } description="The type parameters of the symbol, if any." /> list[ Editable ] } description="Returns Editables for all TreeSitter node instances of variable usages within this node's" /> ### add_attribute Adds an attribute to a class from another class. PyAttribute } description="The attribute to add to the class." defaultValue="" /> bool, optional } description="Whether to include the attribute's dependencies. If True, adds any necessary imports to the class's file. Defaults to False." defaultValue="False" /><Return return_type={ None } description=""/>
Adds an attribute to a class from raw source code, placing it in a specific location
str } description="The source code of the attribute to be added." defaultValue="" /><Return return_type={ None } description=""/>
Adds a new comment to the symbol.
str } description="The comment text to be added." defaultValue="" /> bool } description="Whether to automatically format the text into a proper comment format." defaultValue="True" /> bool } description="Whether to clean and normalize the comment text before adding." defaultValue="True" /> PyCommentType } description="The style of comment to add (e.g., single-line, multi-line)." defaultValue="PyCommentType.SINGLE_LINE" /><Return return_type={ None } description=""/>
Adds a decorator to a function or method.
str } description="The decorator to add, including the '@' symbol." defaultValue="" /> bool, optional } description="If True, skips adding if the decorator exists." defaultValue="False" /><Return return_type={ bool } description="True if the decorator was added, False if skipped."/>
Insert a keyword in the appropriate place before this symbol if it doesn't already exist.
str } description="The keyword to be inserted. Must be a valid keyword in the language context." defaultValue="" /><Return return_type={ None } description=""/>
Adds source code to the class definition.
str } description="The source code to be added to the class definition. If the source doesn't" defaultValue="" /><Return return_type={ None } description=""/>
Find all ancestors of the node of the given type. Does not return itself
<Return return_type={ <>list[ <a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable ]</> } description=""/>
Retrieves all attributes from this Class including those from its superclasses up to a
int | None } description="The maximum depth of superclass traversal. None means no limit, 0 means only this class." defaultValue="0" /> bool } description="Whether to include private attributes. Defaults to True." defaultValue="True" /><Return return_type={ <>list[ <a href="/api-reference/python/PyAttribute" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyAttribute ]</> } description="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."/>
Returns a list of symbols that this symbol depends on.
UsageType | None } description="The types of dependencies to search for. Defaults to UsageType.DIRECT." defaultValue="UsageType.DIRECT" /> int | None } description="Maximum depth to traverse in the dependency graph. If provided, will recursively collect" defaultValue="None" /><Return return_type={ <>list[Union[ <a href="/api-reference/python/PySymbol" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PySymbol , <a href="/api-reference/python/PyImport" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyImport ]]</> } description="A list of symbols and imports that this symbol depends on, sorted by file location."/>
Replace the source of this node with new_src.
str } description="The new source code to replace the current source with." defaultValue="" /> bool } description="If True, adjusts the indentation of new_src to match the current text's indentation. Defaults to False." defaultValue="False" /> int } description="The priority of this edit. Higher priority edits take precedence. Defaults to 0." defaultValue="0" /> bool } description="If True, prevents duplicate edits. Defaults to True." defaultValue="True" /><Return return_type={ None } description=""/>
Find and return matching nodes or substrings within an Editable instance.
Union[list[str], str] } description="One or more strings to search for." defaultValue="" /> bool } description="If True, only return nodes whose source exactly matches one of the strings_to_match." defaultValue="False" /><Return return_type={ <>list[ <a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable ]</> } description="A list of Editable instances that match the search criteria."/>
Returns a list of string literals within this node's source that match any of the given
list[str] } description="A list of strings to search for in string literals." defaultValue="" /> bool } description="If True, matches substrings within string literals. If False, only matches exact strings. Defaults to False." defaultValue="False" /><Return return_type={ <>list[ <a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable [ <a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass ]]</> } description="A list of Editable objects representing the matching string literals."/>
Flags a Python symbol by adding a flag comment and returning a CodeFlag.
<Return return_type={ <>CodeFlag[ <a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass ]</> } description="The code flag object for tracking purposes"/>
Returns a specific attribute by name.
str } description="The name of the attribute to search for." defaultValue="" /><Return return_type={ <><a href="/api-reference/python/PyAttribute" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyAttribute | None</> } description="The matching attribute if found, None otherwise. If multiple attributes with the same name exist in the inheritance hierarchy, returns the first one found."/>
Generates an import string for a Python symbol.
str | None } description="Optional alias name for the import. If provided and different from symbol name, creates aliased import." defaultValue="None" /> str | None } description="Optional module name to import from. If not provided, uses the symbol's file's module name." defaultValue="None" /> ImportType } description="Type of import to generate. If WILDCARD, generates star import. Defaults to UNKNOWN." defaultValue="ImportType.UNKNOWN" /> bool } description="Whether this is a type import. Currently unused. Defaults to False." defaultValue="False" /><Return return_type={ str } description="The formatted import string. Will be one of: - "from {module} import * as {file_name}" (for WILDCARD imports) - "from {module} import {name} as {alias}" (for aliased imports) - "from {module} import {name}" (for standard imports)"/>
Returns a specific method by name from the class or any of its superclasses.
str } description="The name of the method to find." defaultValue="" /><Return return_type={ <><a href="/api-reference/python/PyFunction" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyFunction | None</> } description="The method if found, None otherwise."/>
Returns the name node of the object.
<Return return_type={ <><a href="/api-reference/core/Name" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Name | <a href="/api-reference/python/PyChainedAttribute" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyChainedAttribute | None</> } description="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."/>
Returns a nested class by name from the current class.
str } description="The name of the nested class to find." defaultValue="" /><Return return_type={ <><a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass | None</> } description="The nested class if found, None otherwise."/>
Gets a specific parameter from the callable's parameters list by name.
str } description="The name of the parameter to retrieve." defaultValue="" /><Return return_type={ <><a href="/api-reference/python/PyParameter" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyParameter | None</> } description="The parameter with the specified name, or None if no parameter with that name exists or if there are no parameters."/>
Returns the parameter at the given index.
int } description="The index of the parameter to retrieve." defaultValue="" /><Return return_type={ <><a href="/api-reference/python/PyParameter" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyParameter | None</> } description="The parameter at the specified index, or None if the parameter list is empty or the index does not exist."/>
Retrieves a parameter from the callable by its type.
PySymbol } description="The type to search for." defaultValue="" /><Return return_type={ <><a href="/api-reference/python/PyParameter" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyParameter | None</> } description="The parameter with the specified type, or None if no parameter is found or if the callable has no parameters."/>
Returns the parent class node with the specified name.
str } description="The name of the parent class to find." defaultValue="" /><Return return_type={ <><a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable | None</> } description="The matching parent class node, or None if no match is found."/>
Returns Editables for all TreeSitter nodes corresponding to instances of variable usage
str } description="The variable name to search for." defaultValue="" /> bool } description="If True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False." defaultValue="False" /><Return return_type={ <>Sequence[ <a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable [ <a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass ]]</> } description="List of Editable objects representing variable usage nodes matching the given name."/>
Inserts code after this node.
str } description="The source code to insert after this node." defaultValue="" /> bool, optional } description="Whether to adjust the indentation of new_src to match the current node. Defaults to False." defaultValue="False" /> bool, optional } description="Whether to add a newline before the new_src. Defaults to True." defaultValue="True" /> int, optional } description="Priority of the insertion transaction. Defaults to 0." defaultValue="0" /> bool, optional } description="Whether to deduplicate identical transactions. Defaults to True." defaultValue="True" /><Return return_type={ None } description=""/>
Inserts text before the current symbol node in the Abstract Syntax Tree.
str } description="The source code text to insert." defaultValue="" /> bool } description="Whether to adjust the indentation of new_src to match current text. Defaults to False." defaultValue="False" /> bool } description="Whether to add a newline after insertion. Defaults to True." defaultValue="True" /> int } description="Priority of this edit operation. Higher priority edits are applied first. Defaults to 0." defaultValue="0" /> bool } description="Whether to remove duplicate insertions. Defaults to True." defaultValue="True" /> bool } description="Whether to insert before extended nodes like comments and decorators. Defaults to True." defaultValue="True" /><Return return_type={ None } description=""/>
Checks if this node is a descendant of the given editable instance in the AST.
<Return return_type={ bool } description=""/>
Checks if the class inherits from a specified parent class.
str | PyClass } description="The parent class to check for. Can be specified either as a class name string or Class object." defaultValue="" /> int | None } description="Maximum inheritance depth to search. None means no limit." defaultValue="None" /><Return return_type={ bool } description="True if this class inherits from the parent class, False otherwise."/>
Check if this node is contained another node of the given class
<Return return_type={ bool } description=""/>
Retrieves all methods that exist on this Class, including methods from superclasses, with
int | None, optional } description="Include parent classes up to max_depth. None means no limit, 0 means only current class. Defaults to 0." defaultValue="0" /> bool, optional } description="Whether to include private methods. Defaults to True." defaultValue="True" /> bool, optional } description="Whether to include magic methods. Defaults to False." defaultValue="True" /><Return return_type={ <>list[ <a href="/api-reference/python/PyFunction" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyFunction ] | <a href="/api-reference/core/MultiLineCollection" style={ {fontWeight: "inherit", fontSize: "inherit"} }>MultiLineCollection [ <a href="/api-reference/python/PyFunction" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyFunction , <a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass ]</> } description=""/>
Moves the given symbol to a new file and updates its imports and references.
PyFile } description="The destination file to move the symbol to." defaultValue="" /> bool } description="If True, moves all dependencies of the symbol to the new file. If False, adds imports for the dependencies. Defaults to True." defaultValue="True" /> str } description="The strategy to use for updating imports. Can be either 'add_back_edge' or 'update_all_imports'. Defaults to 'update_all_imports'." defaultValue=""update_all_imports"" /><Return return_type={ None } description=""/>
Find the first ancestor of the node of the given type. Does not return itself
<Return return_type={ <><a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable | None</> } description=""/>
Find the first ancestor of the node of the given type. Does not return itself
<Return return_type={ <><a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable | None</> } description=""/>
Reduces an editable to the following condition
<Return return_type={ None } description=""/>
Deletes this Node and its related extended nodes (e.g. decorators, comments).
bool } description="Whether to delete surrounding whitespace and formatting. Defaults to True." defaultValue="True" /> int } description="Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0." defaultValue="0" /> bool } description="Whether to deduplicate removal transactions at the same location. Defaults to True." defaultValue="True" /><Return return_type={ None } description=""/>
Renames a symbol and updates all its references in the codebase.
str } description="The new name for the symbol." defaultValue="" /> int } description="Priority of the edit operation. Defaults to 0." defaultValue="0" /><Return return_type={ tuple[NodeId, NodeId] } description="A tuple containing the file node ID and the new node ID of the renamed symbol."/>
Search and replace occurrences of text within this node's source and its extended nodes.
str } description="The text or pattern to search for." defaultValue="" /> str } description="The text to replace matches with." defaultValue="" /> int, optional } description="Maximum number of replacements to make. Defaults to -1 (replace all)." defaultValue="-1" /> bool, optional } description="Whether to treat 'old' as a regex pattern. Defaults to False." defaultValue="False" /> int, optional } description="Priority of the replacement operation. Defaults to 0." defaultValue="0" /><Return return_type={ int } description="The total number of replacements made."/>
Returns a list of all regex match of regex_pattern, similar to python's re.search().
<Return return_type={ <>list[ <a href="/api-reference/core/Editable" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Editable ]</> } description="A list of Editable objects corresponding to the matches found."/>
Sets a comment for the Python symbol.
str } description="The comment text to be added or set." defaultValue="" /> bool, optional } description="If True, automatically formats the text as a comment." defaultValue="True" /> bool, optional } description="If True, cleans the format of the comment before" defaultValue="True" /> PyCommentType , optional } description="Type of comment to add (e.g., single line," defaultValue="PyCommentType.SINGLE_LINE" /><Return return_type={ None } description="This method modifies the symbol's comment in place."/>
Sets or updates a docstring for a Python function or class.
str } description="The docstring content to set." defaultValue="" /> bool, optional } description="Whether to format the text into a proper docstring format. Defaults to True." defaultValue="True" /> bool, optional } description="Whether to clean and normalize the docstring format before insertion. Defaults to True." defaultValue="True" /> bool, optional } description="Whether to force single-line comments to be converted to multi-line format. Defaults to False." defaultValue="False" /><Return return_type={ None } description=""/>
Sets an inline comment to the symbol.
str } description="The inline comment text to add." defaultValue="" /> bool, optional } description="If True, formats the text into a proper inline" defaultValue="True" /> bool, optional } description="If True, cleans the comment text before insertion" defaultValue="True" /><Return return_type={ None } description=""/>
Sets the name of a code element.
str } description="The new name to set for the object." defaultValue="" /><Return return_type={ None } description=""/>
Returns all classes which subclass this class.
int | None, optional } description="Maximum inheritance depth to search. If None, searches all depths. Defaults to None." defaultValue="None" /><Return return_type={ <>list[ <a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass ]</> } description="A list of Class objects that inherit from this class."/>
Returns a list of all classes that this class extends, up to max_depth.
int | None } description="The maximum depth to traverse up the inheritance tree. If None, traverses the entire tree." defaultValue="None" /><Return return_type={ <>list[ <a href="/api-reference/python/PyClass" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyClass | <a href="/api-reference/core/ExternalModule" style={ {fontWeight: "inherit", fontSize: "inherit"} }>ExternalModule | <a href="/api-reference/core/Interface" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Interface ]</> } description="A list of all superclass symbols in MRO order, up to max_depth. Returns an empty list if the class has no parent classes."/>
Returns a list of symbols that use or import the exportable object.
UsageType | None } description="The types of usages to search for. Defaults to any." defaultValue="None" /><Return return_type={ <>list[ <a href="/api-reference/python/PyImport" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyImport | <a href="/api-reference/python/PySymbol" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PySymbol | <a href="/api-reference/core/Export" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Export ]</> } description="A list of symbols that use or import the exportable object."/>
Returns a list of usages of the exportable object.
UsageType | None } description="Specifies which types of usages to include in the results. Default is any usages." defaultValue="None" /><Return return_type={ <>list[ <a href="/api-reference/core/Usage" style={ {fontWeight: "inherit", fontSize: "inherit"} }>Usage ]</> } description="A sorted list of Usage objects representing where this exportable is used, ordered by source location in reverse."/>