PyFile
SourceFile representation for Python codebase
Inherits from
PyHasBlock, SourceFile, HasBlock, Usable, File, Expression, Importable, Editable, HasName
Attributes
classes
Returns all Classes in the file.
code_block
content
str
Returns the content of the file as a UTF-8 encoded string.
decorators
Returns a list of decorators associated with this symbol.
dependencies
directory
Returns the directory that contains this file.
docstring
Gets the function's docstring.
extended
Returns a SymbolGroup of all extended nodes associated with this element.
extended_source
str
Returns the source text representation of all extended nodes.
extension
str
Returns the file extension.
file
A property that returns the file object for non-source files.
file_node_id
NodeId
file_path
str
filepath
str
Retrieves the file path of the file that this Editable instance belongs to.
full_name
str | None
Returns the full name of the object, including the namespace path.
function_calls
Returns all function calls within the code block and its decorators.
functions
Returns all Functions in the file.
global_vars
Returns all GlobalVars in the file.
import_module_name
str
Returns the module name that this file gets imported as.
import_statements
Returns all ImportStatements in the file, where each import statement can contain
importers
Returns all imports that directly imports this file as a module.
imports
List of all Imports in this file.
inbound_imports
Returns all imports that are importing symbols contained in this file.
is_binary
bool
Indicates whether the file contains binary data.
is_decorated
bool
Returns whether the symbol is decorated with decorators.
name
str | None
Retrieves the base name of the object without namespace prefixes.
node_type
Literal[NodeType.FILE]
owners
set[str]
Returns the CODEOWNERS of the file.
parent
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
path
Path
programming_language
resolved_value
Returns the resolved type of an Expression.
source
str
Text representation of the Editable instance.
start_byte
int
Returns the starting byte position of a file in its content.
symbols_sorted_topologically
Returns all Symbols in the file, sorted topologically (parents first). Robust to
ts_node
TSNode
variable_usages
Returns Editables for all TreeSitter node instances of variable usages within this node's
Methods
add_decorator
Adds a decorator to a function or method.
Parameters
str
The decorator to add, including the '@' symbol.
bool, optional
If True, skips adding if the decorator exists.
Returns
bool
True if the decorator was added, False if skipped.
add_import_from_import_string
Adds an import statement to the file from a string representation.
Parameters
str
The string representation of the import statement to add (e.g., 'from module import symbol').
Returns
None
This function modifies the file in place.
add_symbol
Adds symbol
to the file.
Parameters
The symbol to add to the file.
bool, optional
Whether to export the symbol. Defaults to True.
Returns
The existing symbol if it already exists in the file or None if it was added.
add_symbol_from_source
Adds a symbol to a file from a string representation.
Parameters
str
String representation of the symbol to be added. This should be valid source code for
Returns
None
The symbol is added directly to the file's content.
add_symbol_import
Adds an import to a file for a given symbol.
Parameters
The symbol to import.
str | None
Optional alias for the imported symbol. Defaults to None.
ImportType
The type of import to use. Defaults to ImportType.UNKNOWN.
bool
Whether this is a type-only import. Defaults to False.
Returns
The existing import for the symbol or None if it was added.
ancestors
Find all ancestors of the node of the given type. Does not return itself
Returns
edit
Replace the source of this Editable
with new_src
.
Parameters
str
The new source text to replace the current text with.
bool
If True, adjusts the indentation of `new_src` to match the current text's indentation level. Defaults to False.
int
The priority of the edit transaction. Higher priority edits are applied first. Defaults to 0.
bool
If True, deduplicates identical transactions. Defaults to True.
Returns
None
find
Find and return matching nodes or substrings within an Editable instance.
Parameters
Union[list[str], str]
One or more strings to search for.
bool
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_by_byte_range
Finds all editable objects that overlap with the given byte range in the file.
Parameters
Range
The byte range to search within the file.
Returns
A list of all Editable objects that overlap with the given range.
find_string_literals
Returns a list of string literals within this node’s source that match any of the given
Parameters
list[str]
A list of strings to search for in string literals.
bool
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.
Returns
get_class
Returns a specific Class by full name. Returns None if not found.
Parameters
str
The full name of the class to search for.
Returns
The matching Class object if found, None otherwise.
get_extensions
Returns the file extensions associated with Python files.
Returns
list[str]
A list containing '.py' as the only Python file extension.
get_function
Returns a specific Function by name.
Parameters
str
The name of the function to find.
Returns
The matching Function object if found, None otherwise.
get_global_var
Returns a specific global var by name. Returns None if not found.
Parameters
str
The name of the global variable to find.
Returns
The global variable if found, None otherwise.
get_import
Returns the import with matching alias. Returns None if not found.
Parameters
str
The alias name to search for. This can match either the direct import name or the aliased name.
Returns
The import statement with the matching alias if found, None otherwise.
get_import_insert_index
Determines the index position where a new import statement should be inserted in a Python file.
Parameters
str
The import statement to be inserted.
Returns
int | None
The index where the import should be inserted. Returns 0 for future imports or if there are no existing imports after future imports. Returns None if there are no imports in the file.
get_import_string
Generates an import string for a symbol.
Parameters
str | None, optional
Alias to use for the imported symbol. Defaults to None.
str | None, optional
Module path to import from. If None, uses module name from source. Defaults to None.
ImportType, optional
Type of import statement to generate. Defaults to ImportType.UNKNOWN.
bool, optional
Whether this is a type import. Currently unused. Defaults to False.
Returns
str
A formatted import string in the form of 'from {module} import {symbol}' with optional alias or wildcard syntax.
get_name
Returns the name node of the object.
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_symbol
Gets a symbol by its name from the file.
Parameters
str
The name of the symbol to find.
Returns
The found symbol, or None if not found.
get_variable_usages
Returns Editables for all TreeSitter nodes corresponding to instances of variable usage
Parameters
str
The variable name to search for.
bool
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.
has_import
Returns True if the file has an import with the given alias.
Parameters
str
The alias to check for in the import statements.
Returns
bool
True if an import with the given alias exists, False otherwise.
insert_after
Inserts code after this node.
Parameters
str
The source code to insert after this node.
bool, optional
Whether to adjust the indentation of new_src to match the current node. Defaults to False.
bool, optional
Whether to add a newline before the new_src. Defaults to True.
int, optional
Priority of the insertion transaction. Defaults to 0.
bool, optional
Whether to deduplicate identical transactions. Defaults to True.
Returns
None
insert_before
Inserts text before this node’s source with optional indentation and newline handling.
Parameters
str
The text to insert before this node.
bool
Whether to fix the indentation of new_src to match the current node. Defaults to False.
bool
Whether to add a newline after new_src. Defaults to True.
int
Transaction priority for managing multiple edits. Defaults to 0.
bool
Whether to deduplicate identical transactions. Defaults to True.
Returns
None
is_wrapped_in
Check if this node is contained another node of the given class
Returns
bool
parent_of_type
Find the first ancestor of the node of the given type. Does not return itself
Returns
reduce_condition
Reduces an editable to the following condition
Returns
None
remove
Removes the file from the file system and graph.
Returns
None
rename
Renames a symbol and updates all its references in the codebase.
Parameters
str
The new name for the symbol.
int
Priority of the edit operation. Defaults to 0.
Returns
tuple[NodeId, NodeId]
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.
Parameters
str
The text or pattern to search for.
str
The text to replace matches with.
int, optional
Maximum number of replacements to make. Defaults to -1 (replace all).
bool, optional
Whether to treat 'old' as a regex pattern. Defaults to False.
int, optional
Priority of the replacement operation. Defaults to 0.
Returns
int
The total number of replacements made.
search
Returns a list of all regex match of regex_pattern
, similar to python’s re.search().
Parameters
str
The regular expression pattern to search for.
bool
When False, excludes the contents of string literals from the search. Defaults to True.
bool
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_docstring
Sets or updates a docstring for a Python function or class.
Parameters
str
The docstring content to set.
bool, optional
Whether to format the text into a proper docstring format. Defaults to True.
bool, optional
Whether to clean and normalize the docstring format before insertion. Defaults to True.
bool, optional
Whether to force single-line comments to be converted to multi-line format. Defaults to False.
Returns
None
set_name
Sets the name of a code element.
Parameters
str
The new name to set for the object.
Returns
None
symbol_can_be_added
Checks if a Python symbol can be added to this Python source file.
Parameters
The Python symbol to check for compatibility with this file.
Returns
bool
Always returns True as Python files can contain any Python symbol type.
symbol_usages
Returns a list of symbols that use or import the exportable object.
Parameters
The types of usages to search for. Defaults to any.
symbols
Returns all Symbols in the file, sorted by position in the file.
Returns
A list of all top-level symbols in the file, sorted by their position in the file. Symbols can be one of the following types: - Symbol: Base symbol class - TClass: Class definition - TFunction: Function definition - TGlobalVar: Global variable assignment - TInterface: Interface definition
update_filepath
Renames the file and updates all imports to point to the new location.
Parameters
str
The new filepath to move the file to.
Returns
None
usages
Returns a list of usages of the exportable object.
Parameters
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.
Was this page helpful?