Skip to content

SourceFile

A Python source file component that represents a Python file in the source directory. It provides a scope for the file, which is a PythonModuleScope that contains all the symbols defined in the file, such as functions, classes, and variables.

import { SourceFile } from "@alloy-js/python";
<SourceFile
doc={Children}
futureImports={Children}
header={Children}
headerComment="string"
path="string"
>
{children}
</SourceFile>
childrenoptionalChildren

Content to add to the file, such as function definitions, class definitions, and variable declarations.

docoptionalChildren

Documentation for this module, which will be rendered as a module-level docstring.

futureImportsoptionalChildren

future imports to render after the docstring but before regular imports.

headeroptionalChildren

Content to render at the very top of the file, before everything else. Use this for shebang lines, encoding declarations, or license headers.

headerCommentoptionalstring

Comment to add at the top of the file, rendered as a Python comment block. This is a convenience prop for adding copyright notices or other comments.

pathstring

The path to the file relative to the source directory.

<SourceFile path="test.py">
<FunctionDeclaration name="test" />
</SourceFile>

renders to

def test():
pass

With module documentation:

<SourceFile
path="utils.py"
doc={<ModuleDoc description={[<Prose>Utility functions for data processing.</Prose>]} />}
>
<FunctionDeclaration name="process_data" />
</SourceFile>

renders to

"""
Utility functions for data processing.
"""
def process_data():
pass