| 123456789101112131415161718192021222324252627282930313233343536 |
- """Version utils."""
- from __future__ import annotations
- from functools import lru_cache
- from awesomeversion import (
- AwesomeVersion,
- AwesomeVersionException,
- AwesomeVersionStrategy,
- )
- @lru_cache(maxsize=1024)
- def version_left_higher_then_right(left: str, right: str) -> bool | None:
- """Return a bool if source is newer than target, will also be true if identical."""
- try:
- left_version = AwesomeVersion(left)
- right_version = AwesomeVersion(right)
- if (
- left_version.strategy != AwesomeVersionStrategy.UNKNOWN
- and right_version.strategy != AwesomeVersionStrategy.UNKNOWN
- ):
- return left_version > right_version
- except (AwesomeVersionException, AttributeError, KeyError):
- pass
- return None
- def version_left_higher_or_equal_then_right(left: str, right: str) -> bool:
- """Return a bool if source is newer than target, will also be true if identical."""
- if left == right:
- return True
- return version_left_higher_then_right(left, right)
|