verspec
Flexible version handling
What it is and what it does
verspec is a lightweight Python library for parsing, representing, and matching software version strings and version specifiers. It provides two main interfaces: loose.Version and loose.SpecifierSet for flexible version handling, and python.Version and python.SpecifierSet for strict Python versioning semantics. The library is adapted from the packaging project and handles common version comparison operations like checking whether a version satisfies a specifier constraint (e.g., testing if version 1.0 matches the specifier ~=1.0).
The package has no external runtime dependencies and installs as a pure Python wheel, making it lightweight to add to projects that need version handling without pulling in the full packaging library. It is classified as Alpha and has not been updated since its initial release, though the repository remains active.
Use it for:
- Check if a software release version satisfies a version constraint in dependency resolution
- Parse and compare version strings in package management or release tooling
- Validate version specifiers in configuration files or user input
- Implement custom version-matching logic in build or deployment scripts
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
verspec parses and compares software version strings and version specifiers (like '~=1.0'), adapted from the packaging library, supporting both loose and Python-specific version schemes.
Yes, if you need lightweight version parsing without packaging as a dependency. The library is stable (no known vulnerabilities), has low install friction, and permissive licensing. However, it has not been updated since 2020 and documentation is incomplete, so consider it suitable for straightforward version-matching tasks rather than as a primary versioning solution in active development.
Install
verspec on PyPI
pip
pip install verspecuv
uv add verspecpoetry
poetry add verspecInstalling verspec
Before you install
Low friction: pure Python wheel with no runtime dependencies. Active repository with recent commits, though the package itself has not been updated since its initial 0.1.0 release in 2020.
License in practice
Dual-licensed under BSD 2-Clause or Apache-2.0, both permissive licenses allowing commercial and private use with minimal restrictions.
Quickstart
from verspec import loose
v = loose.Version('1.0')
s = loose.SpecifierSet('~=1.0')
assert v in s
Verify before relying
- Whether the package supports Python versions beyond 3.8 despite being classified for 3.6–3.8
- Current state of promised documentation ('Forthcoming' in excerpt)
- Maintenance activity and bug-fix cadence since 2020 release
Package facts
| License | BSD 2-Clause or Apache-2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 2,083 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,788,445/month — #3,560 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: verspec-0.1.0-py3-none-any.whl
Keywords: version, handling
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
feufeu checks package availability, resolves…
permissive · top 5,000 on PyPI
versionsParses, compares, and validates semantic…
permissive · top 15,000 on PyPI
packagingProvides reusable utilities for Python…
permissive · top 100 on PyPI
packversProvides core utilities for Python package…
permissive · top 15,000 on PyPI
node-semverParses and compares semantic version strings…
permissive · top 5,000 on PyPI
looseversionProvides a drop-in replacement for the…
permissive · top 5,000 on PyPI
version-parserParses version strings in multiple formats…
permissive · top 15,000 on PyPI
pylcsComputes longest common subsequence, longest…
permissive · top 15,000 on PyPI
rpm-vercmpCompares RPM package version strings using the…
permissive · top 15,000 on PyPI