From 8dc594c05580275f8b071fe4b1128be77f9be391 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Thu, 4 May 2023 14:37:15 +0000 Subject: [PATCH] Fix #200 - Use looseversion if pkg_resources doesn't work --- CHANGELOG.md | 7 +++++++ requirements/pypi.txt | 4 +++- src/bumpver/version.py | 10 ++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b712217..556262d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog for https://github.com/mbarkhau/bumpver +## BumpVer 2023.1121 + +- Fix [#200][gh_i200]: Fix compatability with packaging 23.0. + +[gh_i200]: https://github.com/mbarkhau/bumpver/issues/200 + + ## BumpVer 2022.1120 - Fix [#196][gh_i196]: Add `--pin-increments`. diff --git a/requirements/pypi.txt b/requirements/pypi.txt index 391d643..243a810 100644 --- a/requirements/pypi.txt +++ b/requirements/pypi.txt @@ -15,7 +15,9 @@ toml lexid colorama>=0.4 +# looseversion is needed to parse non PEP440 versions +looseversion; python_version >= "3.5" + # setuptools is needed for pkg_resources.parse_version # Support for Python 2 was dropped with v45 setuptools<45.0.0; python_version < "3.5" -setuptools>=45.0.0; python_version >= "3.5" diff --git a/src/bumpver/version.py b/src/bumpver/version.py index 90aff43..0eff7ac 100644 --- a/src/bumpver/version.py +++ b/src/bumpver/version.py @@ -11,9 +11,15 @@ MaybeInt = typ.Optional[int] def parse_version(version: str) -> typ.Any: # pylint: disable=import-outside-toplevel; lazy import to speed up --help - import pkg_resources - return pkg_resources.parse_version(version) + try: + import pkg_resources + + return pkg_resources.parse_version(version) + except (ImportError, pkg_resources.extern.packaging.version.InvalidVersion): + import looseversion + + return looseversion.LooseVersion(version) class V1CalendarInfo(typ.NamedTuple):