Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
1127 lines (873 loc) · 53.3 KB

File metadata and controls

1127 lines (873 loc) · 53.3 KB
Copy raw file
Download raw file
Outline
Edit and raw actions
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';

Inherits from

PyHasBlock, PySymbol, Class, HasBlock, Symbol, Callable, Expression, Usable, Editable, Importable, HasName

Attributes

### call_sites list[ FunctionCall ] } description="Returns all call sites (invocations) of this callable in the codebase." />

code_block

PyCodeBlock } description="The block of code associated with the code object." />

comment

PyCommentGroup | None } description="Retrieves the comment group associated with a Python symbol." />

constructor

PyFunction | None } description="Returns the constructor method for this class." />

decorators

list[ PyDecorator ] } description="Returns a list of decorators associated with this symbol." />

docstring

PyCommentGroup | None } description="Gets the function's docstring." />

extended

SymbolGroup } description="Returns a SymbolGroup of all extended nodes associated with this element." />

extended_nodes

list[ Editable ] } description="Returns a list of Editable nodes associated with this symbol, including extended symbols." />

extended_source

str } description="Returns the source text representation of all extended nodes." />

file

PyFile } description="The file object that this Editable instance belongs to." />

filepath

str } description="The file path of the file that this Editable instance belongs to." />

full_name

str | None } description="Returns the full name of the object, including the namespace path." />

function_calls

list[ FunctionCall ] } description="Returns all function calls within the code block and its decorators." />

inline_comment

PyCommentGroup | None } description="Returns the inline comment group associated with this symbol." />

is_decorated

bool } description="Returns whether the symbol is decorated with decorators." />

is_exported

bool } description="Indicates whether a Python symbol is exported." />

is_subclass

bool } description="Indicates whether the current class is a subclass of another class." />

name

str | None } description="Retrieves the base name of the object without namespace prefixes." />

nested_classes

list[ PyClass ] } description="Retrieves the nested classes defined within this class." />

parameters

SymbolGroup [ PyParameter , PyClass ] | list[ PyParameter ] } description="Retrieves all parameters of a callable symbol." />

parent

Editable } description="The parent node of this Editable instance." />

parent_class

PyClass | None } description="Find the class this node is contained in" />

parent_class_names

list[ Name | PyChainedAttribute ] } description="Returns a list of the parent class names that this class inherits from." />

parent_classes

Parents[ Type , PyClass ] | None } description="The parent classes of this class, if any." />

parent_function

PyFunction | None } description="Find the function this node is contained in" />

parent_statement

Statement | None } description="Find the statement this node is contained in" />

resolved_value

Expression | list[ Expression ] } description="Returns the resolved type of an Expression." />

return_type

Type | Placeholder [ PyClass ] } description="The type of value returned by the callable, or a placeholder." />

source

str } description="Returns the source code of the symbol." />

symbol_type

} description="The type of symbol, set to SymbolType.Class." />

type_parameters

TypeParameters[ Type , PyClass ] | None } description="The type parameters of the symbol, if any." />

variable_usages

list[ Editable ] } description="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. 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=""/>

add_attribute_from_source

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=""/>

add_comment

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=""/>

add_decorator

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."/>

add_keyword

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=""/>

add_source

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=""/>

ancestors

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=""/>

attributes

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."/>

dependencies

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."/>

edit

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

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."/>

find_string_literals

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."/>

flag

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"/>

get_attribute

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."/>

get_import_string

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)"/>

get_method

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."/>

get_name

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."/>

get_nested_class

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."/>

get_parameter

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."/>

get_parameter_by_index

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."/>

get_parameter_by_type

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."/>

get_parent_class

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."/>

get_variable_usages

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."/>

insert_after

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=""/>

insert_before

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=""/>

is_child_of

Checks if this node is a descendant of the given editable instance in the AST.

<Return return_type={ bool } description=""/>

is_subclass_of

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."/>

is_wrapped_in

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

<Return return_type={ bool } description=""/>

methods

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=""/>

move_to_file

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=""/>

parent_of_type

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=""/>

parent_of_types

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=""/>

reduce_condition

Reduces an editable to the following condition

<Return return_type={ None } description=""/>

remove

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=""/>

rename

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."/>

replace

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."/>

search

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

str } description="The regular expression pattern to search for." defaultValue="" /> bool } description="When False, excludes the contents of string literals from the search. Defaults to True." defaultValue="True" /> bool } description="When False, excludes the contents of comments from the search. Defaults to True." defaultValue="True" />

<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."/>

set_comment

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."/>

set_docstring

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=""/>

set_inline_comment

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=""/>

set_name

Sets the name of a code element.

str } description="The new name to set for the object." defaultValue="" />

<Return return_type={ None } description=""/>

subclasses

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."/>

superclasses

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."/>

symbol_usages

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."/>

usages

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."/>

Morty Proxy This is a proxified and sanitized view of the page, visit original site.