awesomeversion
One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them.
What it is and what it does
AwesomeVersion is a Python library that converts version strings into comparable objects, supporting a wide range of version schemes including semantic versioning, calendar versioning, PEP 440, and container tags. It abstracts away the differences between these formats so you can compare versions from different sources without manual normalization.
The package detects the version format automatically and exposes properties like `major`, `minor`, `patch`, and modifier type (alpha, beta, dev, release candidate). It handles edge cases such as versions with prefixes (e.g., 'v1.2.3'), container special versions ('dev', 'latest', 'beta', 'stable'), and pre-release ordering where versions without modifiers rank higher than their pre-release counterparts.
Use it for:
- Check if an installed package version is within a required range using the `in_range()` method
- Determine what changed between two versions (major, minor, patch, modifier) via the `diff()` method
- Compare version strings from different sources (e.g., GitHub releases, PyPI, Docker tags) directly without conversion
- Detect pre-release or development versions to decide whether to warn users or skip upgrades
- Extract specific version components (major, minor, patch) for conditional logic or reporting
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parse and compare version strings across multiple formats (semantic versioning, calendar versioning, PEP 440, and others), returning comparable version objects with support for pre-release modifiers and container tags.
Yes. Low install friction, no dependencies, permissive license, active maintenance, and no known vulnerabilities make it a safe choice. Install if you need to parse or compare versions across multiple formats in a single codebase; skip if you only work with strict semantic versioning and don't need format detection.
Install
awesomeversion on PyPI
pip
pip install awesomeversionuv
uv add awesomeversionpoetry
poetry add awesomeversionInstalling awesomeversion
Before you install
Low friction: pure Python wheel with no runtime dependencies. Actively maintained as of 2026-08-10 with a recent release cycle.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open and closed projects.
Quickstart
pip install awesomeversion
from awesomeversion import AwesomeVersion
current = AwesomeVersion("1.2.2")
upstream = AwesomeVersion("1.2.3")
print(upstream > current) # True
print(AwesomeVersion("1.2.2").in_range("1.2.1", "1.3")) # True
Requires Python 3.9 or later.
Verify before relying
- Whether the package handles all claimed version formats (0ver, buildver, calver, pep440, semver) with equal fidelity
- Performance characteristics when comparing large numbers of versions or parsing malformed input
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 376 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 990,736/month — #4,561 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: awesomeversion-25.8.0-py3-none-any.whl
Keywords: 0ver, buildver, calver, pep440, semver, version
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
parverparver parses and manipulates PEP 440 version…
permissive · top 5,000 on PyPI
pyhaversionFetches the latest Home Assistant version…
permissive · top 15,000 on PyPI
semverParse, compare, and manipulate semantic version…
permissive · top 1,000 on PyPI
bumpverBumpVer is a CLI tool that searches for and…
permissive · top 15,000 on PyPI
bumpAutomatically increments version numbers in…
permissive · top 15,000 on PyPI
release-tagAutomatically creates and optionally pushes…
permissive · top 15,000 on PyPI
node-semverParses and compares semantic version strings…
permissive · top 5,000 on PyPI
setuptools-git-versioningAutomatically generates PEP 440-compliant…
permissive · top 5,000 on PyPI
verlib2Provides standalone version comparison and…
unclear · top 15,000 on PyPI
bump-my-versionAutomates version number management in projects…
permissive · top 5,000 on PyPI