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
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
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 black
- 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