From a3c72450f0c1f671b1465856a2d4d878559fe93e Mon Sep 17 00:00:00 2001 From: Lie Ryan Date: Fri, 25 Nov 2022 16:28:57 +1100 Subject: [PATCH 1/3] Getting version using pkg_resources may not work if rope is not actually installed python-mode for Vim vendored rope in a way that breaks this way of getting version number. Use regular expression instead as a fallback mechanism to parse pyproject.toml. --- rope/__init__.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rope/__init__.py b/rope/__init__.py index 398745f74..8efe91ed7 100644 --- a/rope/__init__.py +++ b/rope/__init__.py @@ -1,10 +1,19 @@ """rope, a python refactoring library""" -from pkg_resources import get_distribution +from pkg_resources import get_distribution, DistributionNotFound +try: + VERSION = get_distribution('rope').version +except DistributionNotFound: + def get_fallback_version(): + import re + import pathlib + pyproject = (pathlib.Path(__file__).resolve().parent.parent / "pyproject.toml").read_text() + version = re.search("version.*=.*'(.*)'", pyproject) + return version.group(1) if version else None + VERSION = get_fallback_version() INFO = __doc__ -VERSION = get_distribution('rope').version COPYRIGHT = """\ Copyright (C) 2021-2021 Lie Ryan Copyright (C) 2019-2021 Matej Cepl From 0130d9b5b8d9136f28d099a95ca4b86fb4e946c1 Mon Sep 17 00:00:00 2001 From: Lie Ryan Date: Fri, 25 Nov 2022 17:11:17 +1100 Subject: [PATCH 2/3] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73ad00d12..44743a397 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ - ... +# Release 1.5.1 +- #531 Add alternative way to retrieve version number from pyproject.toml + # Release 1.5.0 - #492 Feat: Global configuration support (@bagel897) From abdfe0b20d3593e9c2dc620b8a084beec4e7450a Mon Sep 17 00:00:00 2001 From: Lie Ryan Date: Fri, 25 Nov 2022 17:12:53 +1100 Subject: [PATCH 3/3] Black --- rope/__init__.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rope/__init__.py b/rope/__init__.py index 486259d86..f0bacd6d0 100644 --- a/rope/__init__.py +++ b/rope/__init__.py @@ -1,15 +1,21 @@ """rope, a python refactoring library""" from pkg_resources import get_distribution, DistributionNotFound + try: - VERSION = get_distribution('rope').version + VERSION = get_distribution("rope").version except DistributionNotFound: + def get_fallback_version(): import re import pathlib - pyproject = (pathlib.Path(__file__).resolve().parent.parent / "pyproject.toml").read_text() + + pyproject = ( + pathlib.Path(__file__).resolve().parent.parent / "pyproject.toml" + ).read_text() version = re.search("version.*=.*'(.*)'", pyproject) return version.group(1) if version else None + VERSION = get_fallback_version()