python

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

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

View Source
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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL