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.
Project description
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.
Make anything a version object, and compare against a vast section of other version formats.
Installation
python3 -m pip install awesomeversion
AwesomeVersion class
The AwesomeVersion class takes a version as the first argument, you can also pass in additional arguments to customize the version object.
Argument | Description |
---|---|
version |
The version string to parse. |
ensure_strategy |
Match the AwesomeVersion object against spesific strategies when creating if. If it does not match AwesomeVersionStrategyException will be raised |
find_first_match |
If True, the version given will be scanned for the first match of the given ensure_strategy . Raises AwesomeVersionStrategyException If it is not found for any of the given strategies. |
Example usage
These are some examples of what you can do, more examples can be found in the tests
directory.
from awesomeversion import AwesomeVersion
current = AwesomeVersion("1.2.2")
upstream = AwesomeVersion("1.2.3")
print(upstream > current)
> True
from awesomeversion import AwesomeVersion
version = AwesomeVersion("1.2.3b0")
print(version.beta)
> True
from awesomeversion import AwesomeVersion
current = AwesomeVersion("2021.1.0")
upstream = AwesomeVersion("2021.1.0b2")
print(upstream > current)
> False
from awesomeversion import AwesomeVersion
current = AwesomeVersion("latest")
upstream = AwesomeVersion("2021.1.0")
print(upstream > current)
> False
from awesomeversion import AwesomeVersion
current = AwesomeVersion("latest")
upstream = AwesomeVersion("dev")
print(upstream > current)
> True
from awesomeversion import AwesomeVersion
with AwesomeVersion("20.12.0") as current:
with AwesomeVersion("20.12.1") as upstream:
print(upstream > current)
> True
from awesomeversion import AwesomeVersion
with AwesomeVersion("20.12.0") as current:
print("2020.12.1" > current)
> True
from awesomeversion import AwesomeVersion
version = AwesomeVersion("2.12.0")
print(version.major)
> 2
print(version.minor)
> 12
print(version.patch)
> 0
Contribute
All contributions are welcome!
- Fork the repository
- Clone the repository locally and open the devcontainer or use GitHub codespaces
- Do your changes
- Lint the files with
make lint
- Ensure all tests passes with
make test
- Ensure 100% coverage with
make coverage
- Commit your work, and push it to GitHub
- Create a PR against the
main
branch
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for awesomeversion-22.4.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f6edf15ca19a59f2741cef6350d265af6122631c4f48d95cc11d7a944b6425e |
|
MD5 | 9e869f5c89b58a92d224cf5d0e9b94c0 |
|
BLAKE2b-256 | 2ff02f12895ab0e643d856dcc7001625fb06d56937d0cac35988b7b7b2b66071 |