go-python-packaging

module
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2026 License: Apache-2.0, MIT

README

go-python-packaging

Go primitives for Python packaging metadata: PEP 440 versions, PEP 508 requirement specifiers and markers, PEP 685 extras, PEP 425/600/656 compatibility tags, wheel/METADATA parsing, and requirements.txt.

Part of RFD 0001 — Native Go PyPI Dependency Resolution.

Status: scaffolding. Packages are populated per RFD 0001 Phase 0–1.

Packages

Package Scope
version/ PEP 440 versions and specifiers
requirement/ PEP 508 dependency specifiers (implemented)
marker/ PEP 508 environment markers (implemented)
extras/ PEP 685 extra-name normalization (implemented)
reqtxt/ pip requirements.txt format (implemented)
distribution/ METADATA / wheel parsing
wheelname/ PEP 427 wheel filename → name/version/build/tags (implemented)
tags/ PEP 425/600/656 compatibility tags (server-side, target-parameterized; no host detection)

Changelog

See CHANGELOG.md. Breaking changes ship in a minor bump while the major version is 0, so check the Breaking heading before upgrading.

License

Dual-licensed under Apache-2.0 OR MIT at your option. Every source file carries SPDX-License-Identifier: Apache-2.0 OR MIT.

Directories

Path Synopsis
Package distribution parses Python distribution artifacts (wheels and sdists) and their METADATA into structured records.
Package distribution parses Python distribution artifacts (wheels and sdists) and their METADATA into structured records.
Package extras normalizes Python extra names per PEP 685.
Package extras normalizes Python extra names per PEP 685.
internal
pep508
Package pep508 implements the shared, position-tracking tokenizer used to parse PEP 508 environment markers (package marker/) and PEP 508 dependency-specifier requirement strings (package requirement/).
Package pep508 implements the shared, position-tracking tokenizer used to parse PEP 508 environment markers (package marker/) and PEP 508 dependency-specifier requirement strings (package requirement/).
Package marker represents PEP 508 environment markers - the optional `; <expression>` suffix of a requirement string, e.g.
Package marker represents PEP 508 environment markers - the optional `; <expression>` suffix of a requirement string, e.g.
Package reqtxt parses pip's requirements.txt file format, a superset of PEP 508 requirement lines with pip-specific directives ("-r"/"-c" includes, "-e" editables, VCS/URL/local-path targets, global and per-requirement options, "${VAR}" environment expansion, and inline comments).
Package reqtxt parses pip's requirements.txt file format, a superset of PEP 508 requirement lines with pip-specific directives ("-r"/"-c" includes, "-e" editables, VCS/URL/local-path targets, global and per-requirement options, "${VAR}" environment expansion, and inline comments).
Package requirement parses PEP 508 dependency-specifier strings: a package name, optional bracketed extras, an optional version specifier or direct-reference URL, and an optional environment marker clause, e.g.
Package requirement parses PEP 508 dependency-specifier strings: a package name, optional bracketed extras, an optional version specifier or direct-reference URL, and an optional environment marker clause, e.g.
SPDX-License-Identifier: Apache-2.0 OR MIT
SPDX-License-Identifier: Apache-2.0 OR MIT
Package version implements PEP 440 version parsing, comparison, and version-specifier matching.
Package version implements PEP 440 version parsing, comparison, and version-specifier matching.
Package wheelname decomposes a wheel filename into its structured fields.
Package wheelname decomposes a wheel filename into its structured fields.

Jump to

Keyboard shortcuts

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