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.
This commit is contained in:
Gina Häußge 2015-07-02 10:48:46 +02:00
parent fe35086ad7
commit 1ab0a00700

View file

@ -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):