From 1ab0a007001f0e038ec20b4fe0e2e1c520ac87ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Thu, 2 Jul 2015 10:48:46 +0200 Subject: [PATCH] Fix for deriving base version for old setuptools Old versions of setuptools return a tuple for their pkg_resources.parse_version method instead of a Version object with a base_version attribute that we can use to retrieve the base version. So some manually parsing is needed instead. --- src/octoprint/plugins/pluginmanager/__init__.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/octoprint/plugins/pluginmanager/__init__.py b/src/octoprint/plugins/pluginmanager/__init__.py index cc930580..5d33dc7b 100644 --- a/src/octoprint/plugins/pluginmanager/__init__.py +++ b/src/octoprint/plugins/pluginmanager/__init__.py @@ -575,7 +575,17 @@ class PluginManagerPlugin(octoprint.plugin.SimpleApiPlugin, octoprint_version = pkg_resources.parse_version(octoprint_version_string) if base: - octoprint_version = pkg_resources.parse_version(octoprint_version.base_version) + if isinstance(octoprint_version, tuple): + # old setuptools + base_version = [] + for part in octoprint_version: + if part.startswith("*"): + break + base_version.append(part) + octoprint_version = tuple(base_version) + else: + # new setuptools + octoprint_version = pkg_resources.parse_version(octoprint_version.base_version) return octoprint_version def _to_external_representation(self, plugin):