skillfed

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.

awesomeversion v25.8.0 990.7K downloads/30d#4,561 on PyPI65
Permissive license MIT Active released

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 awesomeversion

uv

uv add awesomeversion

poetry

poetry add awesomeversion

Installing 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

Intended Audience :: DevelopersNatural Language :: EnglishTopic :: Software Development :: Libraries :: Python Modules

Tags

version comparison librarysemantic version parsercalver semver pep440version string normalizationmulti-format version handlingversion range checkingpre-release version detection
version-managementsemver-calver

More Python Modules packages