pontos.version package¶
Submodules¶
- exception pontos.version.VersionError¶
Bases:
PontosError
Some error has occurred during version handling
- class pontos.version.Version(original_version)¶
An abstract base class for version information
A version implementation must consider the following constraints:
Version strings containing -dev, and .dev are considered development versions.
Version strings containing +dev are not considered as development versions.
Development versions are are also pre releases. The following version string is a development version and a pre release: 1.2.3-alpha1-dev1
A version must return a pre for development versions for version strings containing a pre release version like 1.2.3-alpha1-dev1
A development version has no local part
Alpha, Beta, Release Candidate and Development versions are pre releases
Alpha, Beta and Release Candidate versions pre must return the following names for the first value in the tuple: alpha, beta, rc and dev
- abstract property is_pre_release: bool¶
Whether this version is a pre-release (alpha, beta, release candidate).
- abstract classmethod from_string(version)¶
Create a version from a version string
- Parameters:
version (str) – Version string to parse
- Raises:
VersionError – If the version string is invalid.
- Returns:
A new version instance
- Return type:
- class pontos.version.VersionCalculator¶
An abstract base class for calculating a next version from a version
- classmethod version_from_string(version)¶
Create a version from a version string
- Parameters:
version (str) – Version string to parse
- Raises:
VersionError – If the version string is invalid.
- Returns:
A new version instance
- Return type:
- classmethod next_calendar_version(current_version)¶
Find the correct next calendar version by checking latest version and the today’s date
- Raises:
VersionError – If version is invalid.
- Return type:
- classmethod next_major_version(current_version)¶
Get the next major version from a valid version
Examples
“1.2.3” will return “2.0.0” “1.2.3.dev1” will return “1.2.3” “1.2.3-alpha1” will return “1.2.3” “1.0.0” will return “2.0.0” “1.0.0-a1” will return “1.0.0” “1.0.0.dev1” will return “1.0.0” “0.5.0-a1” will return “1.0.0” “0.5.0.dev1” will return “1.0.0”
- Return type:
- classmethod next_minor_version(current_version)¶
Get the next minor version from a valid version
Examples
“1.2.3” will return “1.3.0” “1.2.3.dev1” will return “1.3.0” “1.2.3-alpha1” will return “1.3.0” “1.0.0” will return “1.1.0” “1.0.0-a1” will return “1.0.0” “1.0.0.dev1” will return “1.0.0” “0.5.0-a1” will return “0.5.0” “0.5.0.dev1” will return “0.5.0”
- Return type:
- classmethod next_patch_version(current_version)¶
Get the next patch version from a valid version
Examples
“1.2.3” will return “1.2.4” “1.2.3.dev1” will return “1.2.3” “1.2.3-dev1” will return “1.2.3” “1.2.3+dev1” will return “1.2.4” “1.2.3-alpha1” will return “1.2.3” “1.0.0” will return “1.0.1” “1.0.0-a1” will return “1.0.0” “1.0.0.dev1” will return “1.0.0” “0.5.0-a1” will return “0.5.0” “0.5.0.dev1” will return “0.5.0”
- Return type:
- abstract static next_dev_version(current_version)¶
Get the next development version from a valid version
Examples
“1.2.3” will return “1.2.4-dev1” “1.2.3.dev1” will return “1.2.3.dev2” “1.2.3-dev1” will return “1.2.3-dev2” “1.2.3+dev1” will return “1.2.4-dev1” “1.2.3-alpha1” will return “1.2.3-alpha2-dev1” “1.0.0” will return “1.0.1-dev1” “1.0.0-a1” will return “1.0.0-a2-dev1” “1.0.0.dev1” will return “1.0.0.dev2” “0.5.0-a1” will return “0.5.0-a2-dev1” “0.5.0.dev1” will return “0.5.0.dev2”
- Return type:
- abstract static next_alpha_version(current_version)¶
Get the next alpha version from a valid version
Examples
“1.2.3” will return “1.2.4-alpha1” “1.2.3.dev1” will return “1.2.3-alpha1” “1.2.3-dev1” will return “1.2.3-alpha1” “1.2.3+dev1” will return “1.2.4-alpha1” “1.2.3-alpha1” will return “1.2.3-alpha2” “1.0.0” will return “1.0.1-alpha1” “1.0.0-a1” will return “1.0.1-alpha1” “1.0.0.dev1” will return “1.0.0-alpha1” “0.5.0-a1” will return “0.5.1-alpha1” “0.5.0.dev1” will return “0.5.0-alpha1”
- Return type:
- abstract static next_beta_version(current_version)¶
Get the next beta version from a valid version
Examples
“1.2.3” will return “1.2.4-beta1” “1.2.3.dev1” will return “1.2.3-beta1” “1.2.3-dev1” will return “1.2.3-beta1” “1.2.3+dev1” will return “1.2.4-beta1” “1.2.3-alpha1” will return “1.2.3-beta1” “1.0.0” will return “1.0.1-beta1” “1.0.0-a1” will return “1.0.1-beta1” “1.0.0.dev1” will return “1.0.0-beta1” “0.5.0-a1” will return “0.5.1-beta1” “0.5.0.dev1” will return “0.5.0-beta1”
- Return type:
- abstract static next_release_candidate_version(current_version)¶
Get the next release candidate version from a valid version
Examples
“1.2.3” will return “1.2.4-rc1” “1.2.3.dev1” will return “1.2.3-rc1” “1.2.3-dev1” will return “1.2.3-rc1” “1.2.3+dev1” will return “1.2.4-rc1” “1.2.3-alpha1” will return “1.2.3-rc1” “1.0.0” will return “1.0.1-rc1” “1.0.0-a1” will return “1.0.1-rc1” “1.0.0.dev1” will return “1.0.0-rc1” “0.5.0-a1” will return “0.5.1-rc1” “0.5.0.dev1” will return “0.5.0-rc”
- Return type:
- class pontos.version.VersionUpdate(previous, new, changed_files=<factory>)¶
Represents a version update from a previous version to a new version.
If previous and new are equal the version was not updated and changed_files should be empty.
If there is no previous version for example in an initial release previous should be None.
Example
from pathlib import Path from python.version import Version, VersionUpdate update = VersionUpdate( previous=Version("1.2.3"), new=Version("2.0.0"), changed_files=[Path("package.json"), Path("version.js")], )