packvers
Core utilities for Python packages. Fork to support LegacyVersion
What it is and what it does
packvers is a fork of the Python packaging library created to preserve support for LegacyVersion and LegacySpecifier classes that were deprecated and removed from the main packaging project. It provides a complete set of utilities for working with Python package metadata according to established interoperability specifications such as PEP 440 (version handling) and PEP 425 (platform tags).
The package implements version parsing and comparison, version specifiers (e.g., '>=1.0'), environment markers for conditional dependencies, requirement parsing, platform tag handling, and general packaging utilities. It is intended for projects that still need to handle legacy version formats or require a stable snapshot of packaging functionality from an earlier point in time. The single runtime dependency is pyparsing, and the package supports Python 3.6 through 3.10 on CPython and PyPy.
Use it for:
- Parse and compare legacy version strings that do not conform to PEP 440 in older codebases.
- Build package management or distribution tools that need stable, frozen packaging utilities.
- Handle platform-specific wheel tags and environment markers for dependency resolution.
- Work with requirement specifications and version constraints in package metadata.
- Maintain compatibility with systems that depend on LegacyVersion semantics.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides core utilities for Python package version handling, specifiers, markers, requirements, and tags, with continued support for LegacyVersion that was dropped from the upstream packaging library.
Yes, if you specifically need LegacyVersion support or require a stable snapshot of packaging utilities. The package is production-stable, permissively licensed, and has no known vulnerabilities. However, it is dormant—no updates since late 2022—so do not expect active maintenance or bug fixes. Install only if you have a concrete reason to use this fork rather than the current upstream packaging library.
Install
packvers on PyPI
pip
pip install packversuv
uv add packverspoetry
poetry add packversInstalling packvers
Before you install
Low install friction with a single runtime dependency (pyparsing). Maintenance is dormant—last release was 2022-12-22 and no commits since 2024-08-21—so expect no active bug fixes or updates, though the package is marked Production/Stable.
License in practice
Dual-licensed under BSD-2-Clause or Apache-2.0, both permissive licenses. You may use, modify, and distribute this package with minimal restrictions, though you should include a copy of the applicable license.
Quickstart
pip install packvers
from packvers.version import Version, LegacyVersion
from packvers.specifiers import SpecifierSet
v = Version('1.0.0')
legacy = LegacyVersion('1.0')
spec = SpecifierSet('>=1.0,<2.0')
Requires Python 3.6 or later; does not support Python 2.7.
Verify before relying
- Whether LegacyVersion and LegacySpecifier are fully compatible with the upstream packaging library's deprecated versions.
- Current maintenance status and likelihood of future updates or security patches.
- Whether this fork is actively used by projects that depend on it or if it is primarily a historical workaround.
Package facts
| License | BSD-2-Clause or Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pyparsing |
| Maintenance | dormant — 1,331 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 129,490/month — #11,668 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: packvers-21.5-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
packagingProvides reusable utilities for Python…
permissive · top 100 on PyPI
packaging-legacyProvides access to deprecated Python packaging…
permissive · top 15,000 on PyPI
verspecverspec parses and compares software version…
permissive · top 5,000 on PyPI
verlib2Provides standalone version comparison and…
unclear · top 15,000 on PyPI
devpi-commonProvides shared utility functions for…
permissive · top 15,000 on PyPI
dep-logicPerforms logical operations (AND, OR) on PEP…
permissive · top 5,000 on PyPI
wheel-filenameParse and validate wheel filenames according to…
permissive · top 15,000 on PyPI
manygoConverts Golang platform identifiers (GOOS and…
permissive · top 15,000 on PyPI
parverparver parses and manipulates PEP 440 version…
permissive · top 5,000 on PyPI