| title | PyFunction |
|---|---|
| sidebarTitle | PyFunction |
| icon | |
| description | Extends Function 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, Function, HasBlock, Symbol, Callable, Expression, Usable, Editable, Importable, HasName
### body str } description="Returns the body of the function as a string." /> 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." /> 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="Gets all function calls within the function and its parameters." /> str } description="Returns the function signature as a string." /> str | None } description="Gets the inferred type of the function from the language's native language engine / compiler." /> PyCommentGroup | None } description="Returns the inline comment group associated with this symbol." /> bool } description="Returns True if the function is asynchronous." /> bool } description="Indicates whether the current function is decorated with @classmethod." /> bool } description="Determines if the current function is a constructor method." /> bool } description="Returns whether the symbol is decorated with decorators." /> bool } description="Indicates whether a Python symbol is exported." /> bool } description="Determines if a method is a magic method." /> bool } description="Returns whether the function is a method of a class." /> bool } description="Determines whether a function is decorated with an overload decorator." /> bool } description="Determines if a method is a private method." /> bool } description="Determines if the function is a property." /> bool } description="Determines if the function is a static method." /> str | None } description="Retrieves the base name of the object without namespace prefixes." /> list[ PyFunction ] } description="Returns a list of nested functions defined within this function's code block." /> SymbolGroup [ PyParameter , PyFunction ] | 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" /> 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." /> list[ ReturnStatement ] } description="Returns a list of all return statements within this function's body." /> Type | Placeholder [ PyFunction ] } 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.Function." /> TypeParameters[ Type , PyFunction ] | 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_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=""/>
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 statements to the end of a function body.
str } description="The lines of code to be added at the end of the function body." 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=""/>
Modifies the function to be asynchronous.
<Return return_type={ None } description=""/>
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/PyFunction" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyFunction ]]</> } 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/PyFunction" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyFunction ]</> } description="The code flag object for tracking purposes"/>
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 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."/>
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 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/PyFunction" style={ {fontWeight: "inherit", fontSize: "inherit"} }>PyFunction ]]</> } 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=""/>
Inserts lines of code into the function body at the specified index.
str } description="The code lines to insert into the function body." defaultValue="" /> int, optional } description="The position in the function body where the lines should be inserted. Defaults to 0." defaultValue="0" /><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=""/>
Check if this node is contained another node of the given class
<Return return_type={ bool } 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=""/>
Prepends statements to the start of the function body.
str } description="The code statements to prepend to the function body." defaultValue="" /><Return return_type={ None } description="This method modifies the function in place."/>
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."/>
Renames a local variable and all its usages within a function body.
str } description="The current name of the local variable to be renamed." defaultValue="" /> str } description="The new name to give to the local variable." defaultValue="" /> bool, optional } description="If True, matches variable names that contain old_var_name. Defaults to False." defaultValue="False" /><Return return_type={ None } description="The method modifies the AST in place."/>
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=""/>
Sets or modifies the return type annotation of a function.
str } description="The new return type annotation to set. Provide an empty string to remove the return type annotation." defaultValue="" /><Return return_type={ None } description=""/>
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."/>