Documentation
¶
Overview ¶
Package python provides dependency resolution for Python packages.
Overview ¶
This package implements deps.Language for Python, supporting:
- PyPI registry resolution via pypi client
- poetry.lock manifest parsing (full transitive closure)
- requirements.txt parsing (direct dependencies, resolved via PyPI)
Registry Resolution ¶
Use [Language.Resolver] to fetch dependencies from PyPI:
resolver, _ := python.Language.Resolver()
g, _ := resolver.Resolve(ctx, "fastapi", deps.Options{MaxDepth: 10})
Manifest Parsing ¶
Parse local manifest files:
parser, _ := python.Language.Manifest("poetry", nil)
result, _ := parser.Parse("poetry.lock", deps.Options{})
Supported manifests:
- poetry.lock: Full dependency graph with versions (IncludesTransitive: true)
- requirements.txt: Direct deps only, resolved via PyPI (IncludesTransitive: false)
Package Name Normalization ¶
Python package names are normalized following PEP 503: converted to lowercase with runs of [_.-] replaced by single hyphens.
pypi: github.com/matzehuels/stacktower/pkg/integrations/pypi deps.Language: github.com/matzehuels/stacktower/pkg/deps.Language
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Language = &deps.Language{ Name: "python", DefaultRegistry: "pypi", ManifestTypes: []string{"poetry", "requirements"}, ManifestAliases: map[string]string{ "poetry.lock": "poetry", "requirements.txt": "requirements", }, NewResolver: newResolver, NewManifest: newManifest, ManifestParsers: manifestParsers, }
Language provides Python dependency resolution via PyPI. Supports poetry.lock and requirements.txt manifest files.
Functions ¶
This section is empty.
Types ¶
type PoetryLock ¶
type PoetryLock struct{}
PoetryLock parses poetry.lock files. It provides a full transitive closure of the dependency graph without needing to contact a registry.
func (*PoetryLock) IncludesTransitive ¶
func (p *PoetryLock) IncludesTransitive() bool
func (*PoetryLock) Parse ¶
func (p *PoetryLock) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)
func (*PoetryLock) Supports ¶
func (p *PoetryLock) Supports(name string) bool
func (*PoetryLock) Type ¶
func (p *PoetryLock) Type() string
type Requirements ¶
type Requirements struct {
// contains filtered or unexported fields
}
Requirements parses requirements.txt files. By default, it only provides direct dependencies. If a deps.Resolver is provided, it can resolve the full transitive closure.
func (*Requirements) IncludesTransitive ¶
func (r *Requirements) IncludesTransitive() bool
func (*Requirements) Parse ¶
func (r *Requirements) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)
func (*Requirements) Supports ¶
func (r *Requirements) Supports(name string) bool
func (*Requirements) Type ¶
func (r *Requirements) Type() string