node-semver (Python)

0.9.0 · maintenance · verified Sat Apr 11

A Python port of the popular `node-semver` library, which provides semantic versioning utilities as used by npm. The library helps in parsing, comparing, and ranging semantic versions (MAJOR.MINOR.PATCH) according to the SemVer 2.0.0 specification. The current stable version is 0.9.0, released on February 23, 2023. This library is maintained on an as-needed basis.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to find the maximum version that satisfies a given semantic version range, with options for strict or loose matching and including pre-release versions.

from nodesemver import max_satisfying

versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6', '2.0.1']
range_ = '~1.2.3'

satisfying_version = max_satisfying(versions, range_, loose=False)
print(f"Max satisfying version for range '{range_}' is: {satisfying_version}")
# Expected: Max satisfying version for range '~1.2.3' is: 1.2.6

versions_with_prerelease = ['1.2.3', '1.2.4', '1.2.5', '1.2.6-pre.1', '2.0.1']
range_prerelease = '~1.2.3'

satisfying_with_prerelease = max_satisfying(versions_with_prerelease, range_prerelease, loose=False, include_prerelease=True)
print(f"Max satisfying (incl. prerelease) for range '{range_prerelease}' is: {satisfying_with_prerelease}")
# Expected: Max satisfying (incl. prerelease) for range '~1.2.3' is: 1.2.6-pre.1

view raw JSON →