mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-11 22:10:09 +01:00
chore: force looseversion when it is used on either old or new
This commit is contained in:
parent
0955cb2e22
commit
c9af1fdcf5
3 changed files with 18 additions and 17 deletions
|
|
@ -8,16 +8,10 @@
|
||||||
# should see if there is a conda package that suits your needs.
|
# should see if there is a conda package that suits your needs.
|
||||||
|
|
||||||
pathlib2
|
pathlib2
|
||||||
typing; python_version < "3.5"
|
click
|
||||||
click<8.0; python_version < "3.6"
|
|
||||||
click; python_version >= "3.6"
|
|
||||||
toml
|
toml
|
||||||
lexid
|
lexid
|
||||||
colorama>=0.4
|
colorama>=0.4
|
||||||
|
|
||||||
# looseversion is needed to parse non PEP440 versions
|
# looseversion is needed to parse non PEP440 versions
|
||||||
looseversion; python_version >= "3.5"
|
looseversion
|
||||||
|
|
||||||
# setuptools is needed for pkg_resources.parse_version
|
|
||||||
# Support for Python 2 was dropped with v45
|
|
||||||
setuptools<45.0.0; python_version < "3.5"
|
|
||||||
|
|
|
||||||
|
|
@ -517,7 +517,13 @@ def _is_valid_version(raw_pattern: str, old_version: str, new_version: str) -> b
|
||||||
logger.error(f"Invalid version '{new_version}' for pattern '{raw_pattern}'")
|
logger.error(f"Invalid version '{new_version}' for pattern '{raw_pattern}'")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if version.parse_version(new_version) <= version.parse_version(old_version):
|
force_loose = not isinstance(
|
||||||
|
version.parse_version(new_version), type(version.parse_version(old_version))
|
||||||
|
)
|
||||||
|
if (
|
||||||
|
version.parse_version(new_version, force_loose)
|
||||||
|
<= version.parse_version(old_version, force_loose)
|
||||||
|
):
|
||||||
logger.error("Invariant violated: New version must be greater than old version ")
|
logger.error("Invariant violated: New version must be greater than old version ")
|
||||||
logger.error(f" Failed Invariant: '{new_version}' > '{old_version}'")
|
logger.error(f" Failed Invariant: '{new_version}' > '{old_version}'")
|
||||||
logger.error("If the invariant is from vcs tags try '--ignore-vcs-tag' option.")
|
logger.error("If the invariant is from vcs tags try '--ignore-vcs-tag' option.")
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,18 @@ import datetime as dt
|
||||||
MaybeInt = typ.Optional[int]
|
MaybeInt = typ.Optional[int]
|
||||||
|
|
||||||
|
|
||||||
def parse_version(version: str) -> typ.Any:
|
def parse_version(version: str, loose: bool = False) -> typ.Any:
|
||||||
# pylint: disable=import-outside-toplevel; lazy import to speed up --help
|
# pylint: disable=import-outside-toplevel; lazy import to speed up --help
|
||||||
|
|
||||||
try:
|
if not loose:
|
||||||
import pkg_resources
|
try:
|
||||||
|
import pkg_resources
|
||||||
|
return pkg_resources.parse_version(version)
|
||||||
|
except (ImportError, ValueError):
|
||||||
|
pass
|
||||||
|
|
||||||
return pkg_resources.parse_version(version)
|
import looseversion
|
||||||
except (ImportError, ValueError):
|
return looseversion.LooseVersion(version)
|
||||||
import looseversion
|
|
||||||
|
|
||||||
return looseversion.LooseVersion(version)
|
|
||||||
|
|
||||||
|
|
||||||
class V1CalendarInfo(typ.NamedTuple):
|
class V1CalendarInfo(typ.NamedTuple):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue