Documentation
¶
Overview ¶
Package python implements a tree-sitter based Python parser for extracting Cog predictor signatures. It walks the concrete syntax tree to extract imports, class definitions, function parameters with type annotations and default values, and Input() call keyword arguments.
This parser is Python-specific. Future languages (e.g. Node.js) would get their own parser package under pkg/schema/.
Index ¶
- func AllChildren(n *sitter.Node) []*sitter.Node
- func CollectImports(root *sitter.Node, source []byte) *schema.ImportContext
- func Content(n *sitter.Node, source []byte) string
- func InheritsFromBaseModel(classNode *sitter.Node, source []byte, imports *schema.ImportContext) bool
- func NamedChildren(n *sitter.Node) []*sitter.Node
- func ParsePredictor(source []byte, targetRef string, mode schema.Mode, sourceDir string) (*schema.PredictorInfo, error)
- func ParsePredictorWithSourcePath(source []byte, targetRef string, mode schema.Mode, sourceDir string, ...) (*schema.PredictorInfo, error)
- func ParseWithOptions(opts ParserOptions) (*schema.PredictorInfo, error)
- func TypedDictClassInfo(classNode *sitter.Node, source []byte, imports *schema.ImportContext, ...) (bool, bool, []string)
- func UnwrapClass(node *sitter.Node) *sitter.Node
- func UnwrapFunction(node *sitter.Node) *sitter.Node
- type ModuleSummary
- type ParseState
- type ParserOptions
- type TargetCallable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllChildren ¶ added in v0.19.0
AllChildren returns all children (named and anonymous) of a node.
func CollectImports ¶ added in v0.19.0
func CollectImports(root *sitter.Node, source []byte) *schema.ImportContext
func InheritsFromBaseModel ¶ added in v0.19.0
func NamedChildren ¶ added in v0.19.0
NamedChildren returns all named children of a node.
func ParsePredictor ¶
func ParsePredictor(source []byte, targetRef string, mode schema.Mode, sourceDir string) (*schema.PredictorInfo, error)
ParsePredictor parses Python source and extracts predictor information. targetRef is the class or function name (e.g. "Predictor" or "run"). mode controls whether we look for predict or train method. sourceDir is the project root for resolving cross-file imports. Pass "" if unknown.
func ParsePredictorWithSourcePath ¶
func ParsePredictorWithSourcePath(source []byte, targetRef string, mode schema.Mode, sourceDir string, sourcePath string) (*schema.PredictorInfo, error)
ParsePredictorWithSourcePath parses Python source and uses sourcePath, relative to sourceDir, to resolve package-relative imports.
func ParseWithOptions ¶
func ParseWithOptions(opts ParserOptions) (*schema.PredictorInfo, error)
func TypedDictClassInfo ¶ added in v0.19.1
Types ¶
type ModuleSummary ¶
type ModuleSummary struct {
Imports *schema.ImportContext
Models schema.ModelClassMap
TypedDicts map[string]bool
SourcePath string
}
type ParseState ¶
type ParseState struct {
Options ParserOptions
Phase parsePhase
Tree *sitter.Tree
Root *sitter.Node
Imports *schema.ImportContext
Scope moduleScope
ModelCtx *modelParseContext
Models schema.ModelClassMap
LoadedModules map[string]ModuleSummary
Registry *inputRegistry
Target *TargetCallable
FileCtx *pythonFileContext
TargetFunc *targetFunction
Inputs *schema.OrderedMap[string, schema.InputField]
Output schema.SchemaType
SupportsStreaming bool
OutputSet bool
}