From eab2c99b60f53931d0229f0562ba1b2634bddc56 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Mon, 22 Apr 2019 02:52:25 -0400 Subject: [PATCH] py3: make plugin updater work calibre's internal version representation is a tuple. On python3, it no longer suffices to compare this to json.loads() list-based representations. Also update one instance of map where we need something subscriptable. --- src/calibre/gui2/dialogs/plugin_updater.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/dialogs/plugin_updater.py b/src/calibre/gui2/dialogs/plugin_updater.py index 4d2844e891..36c024a4e9 100644 --- a/src/calibre/gui2/dialogs/plugin_updater.py +++ b/src/calibre/gui2/dialogs/plugin_updater.py @@ -24,7 +24,7 @@ from calibre.gui2 import error_dialog, question_dialog, info_dialog, open_url, g from calibre.gui2.preferences.plugins import ConfigWidget from calibre.utils.date import UNDEFINED_DATE, format_date from calibre.utils.https import get_https_resource_securely -from polyglot.builtins import itervalues, unicode_type, filter +from polyglot.builtins import itervalues, map, unicode_type, filter SERVER = 'https://code.calibre-ebook.com/plugins/' INDEX_URL = '%splugins.json.bz2' % SERVER @@ -205,7 +205,7 @@ class DisplayPlugin(object): self.donation_link = plugin['donate'] self.available_version = tuple(plugin['version']) self.release_date = datetime.datetime(*tuple(map(int, re.split(r'\D', plugin['last_modified'])))[:6]).date() - self.calibre_required_version = plugin['minimum_calibre_version'] + self.calibre_required_version = tuple(plugin['minimum_calibre_version']) self.author = plugin['author'] self.platforms = plugin['supported_platforms'] self.uninstall_plugins = plugin['uninstall'] or [] @@ -277,8 +277,8 @@ class DisplayPluginModel(QAbstractTableModel): def __init__(self, display_plugins): QAbstractTableModel.__init__(self) self.display_plugins = display_plugins - self.headers = map(unicode_type, [_('Plugin name'), _('Donate'), _('Status'), _('Installed'), - _('Available'), _('Released'), _('calibre'), _('Author')]) + self.headers = list(map(unicode_type, [_('Plugin name'), _('Donate'), _('Status'), _('Installed'), + _('Available'), _('Released'), _('calibre'), _('Author')])) def rowCount(self, *args): return len(self.display_plugins)