diff --git a/recipes/sltrib.py b/recipes/sltrib.py deleted file mode 100644 index a6701ae296..0000000000 --- a/recipes/sltrib.py +++ /dev/null @@ -1,56 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - -class AdvancedUserRecipe1278347258(BasicNewsRecipe): - title = u'Salt Lake City Tribune' - __author__ = 'Charles Holbert' - oldest_article = 7 - max_articles_per_feed = 100 - - description = '''Utah's independent news source since 1871''' - publisher = 'http://www.sltrib.com/' - category = 'news, Utah, SLC' - language = 'en' - encoding = 'utf-8' - #delay = 1 - #simultaneous_downloads = 1 - remove_javascript = True - use_embedded_content = False - no_stylesheets = True - - #masthead_url = 'http://www.sltrib.com/csp/cms/sites/sltrib/assets/images/logo_main.png' - #cover_url = 'http://webmedia.newseum.org/newseum-multimedia/dfp/jpg9/lg/UT_SLT.jpg' - - keep_only_tags = [dict(name='div',attrs={'id':'imageBox'}) - ,dict(name='div',attrs={'class':'headline'}) - ,dict(name='div',attrs={'class':'byline'}) - ,dict(name='p',attrs={'class':'TEXT_w_Indent'})] - - feeds = [(u'SL Tribune Today', u'http://www.sltrib.com/csp/cms/sites/sltrib/RSS/rss.csp?cat=All'), - (u'Utah News', u'http://www.sltrib.com/csp/cms/sites/sltrib/RSS/rss.csp?cat=UtahNews'), - (u'Business News', u'http://www.sltrib.com/csp/cms/sites/sltrib/RSS/rss.csp?cat=Money'), - (u'Technology', u'http://www.sltrib.com/csp/cms/sites/sltrib/RSS/rss.csp?cat=Technology'), - (u'Most Popular', u'http://www.sltrib.com/csp/cms/sites/sltrib/RSS/rsspopular.csp'), - (u'Sports', u'http://www.sltrib.com/csp/cms/sites/sltrib/RSS/rss.csp?cat=Sports')] - - extra_css = ''' - .headline{font-family:Arial,Helvetica,sans-serif; font-size:xx-large; font-weight: bold; color:#0E5398;} - .byline{font-family:Arial,Helvetica,sans-serif; color:#333333; font-size:xx-small;} - .storytext{font-family:Arial,Helvetica,sans-serif; font-size:medium;} - ''' - - def print_version(self, url): - seg = url.split('/') - x = seg[5].split('-') - baseURL = 'http://www.sltrib.com/csp/cms/sites/sltrib/pages/printerfriendly.csp?id=' - s = baseURL + x[0] - return s - - def get_cover_url(self): - cover_url = None - href = 'http://www.newseum.org/todaysfrontpages/hr.asp?fpVname=UT_SLT&ref_pge=lst' - soup = self.index_to_soup(href) - div = soup.find('div',attrs={'class':'tfpLrgView_container'}) - if div: - cover_url = div.img['src'] - return cover_url - diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py index 87e017f12d..34b5904d8f 100644 --- a/src/calibre/ebooks/__init__.py +++ b/src/calibre/ebooks/__init__.py @@ -67,7 +67,7 @@ class HTMLRenderer(object): buf = QBuffer(ba) buf.open(QBuffer.WriteOnly) image.save(buf, 'JPEG') - self.data = bytes(ba.data()) + self.data = ba.data() except Exception as e: self.exception = e self.traceback = traceback.format_exc() diff --git a/src/calibre/ebooks/pdf/render/serialize.py b/src/calibre/ebooks/pdf/render/serialize.py index dae0cd773a..492edaacb6 100644 --- a/src/calibre/ebooks/pdf/render/serialize.py +++ b/src/calibre/ebooks/pdf/render/serialize.py @@ -464,7 +464,7 @@ class PDFStream(object): ba = QByteArray() buf = QBuffer(ba) image.save(buf, 'jpeg', 94) - data = bytes(ba.data()) + data = ba.data() if has_alpha: soft_mask = self.write_image(tmask, w, h, 8) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index e656ca1386..7812dfe1c0 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -1,6 +1,10 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal ' + """ The GUI """ + import glob import os import signal @@ -354,7 +358,7 @@ def is_widescreen(): global _is_widescreen if _is_widescreen is None: try: - _is_widescreen = float(available_width())/available_height() > 1.4 + _is_widescreen = available_width()/available_height() > 1.4 except: _is_widescreen = False return _is_widescreen @@ -687,7 +691,7 @@ def pixmap_to_data(pixmap, format='JPEG', quality=None): buf = QBuffer(ba) buf.open(QBuffer.WriteOnly) pixmap.save(buf, format, quality=quality) - return bytes(ba.data()) + return ba.data() def decouple(prefix): @@ -736,7 +740,7 @@ class Translator(QTranslator): try: src = unicode_type(args[1]) except: - return u'' + return '' t = _ return t(src) @@ -766,8 +770,8 @@ def load_builtin_fonts(): if fid > -1: fam = QFontDatabase.applicationFontFamilies(fid) fam = set(map(unicode_type, fam)) - if u'calibre Symbols' in fam: - _rating_font = u'calibre Symbols' + if 'calibre Symbols' in fam: + _rating_font = 'calibre Symbols' def setup_gui_option_parser(parser): @@ -881,7 +885,7 @@ class Application(QApplication): self.line_height = max(12, QFontMetrics(self.font()).lineSpacing()) dl = QLocale(get_lang()) - if unicode_type(dl.bcp47Name()) != u'C': + if unicode_type(dl.bcp47Name()) != 'C': QLocale.setDefault(dl) global gui_thread, qt_app gui_thread = QThread.currentThread() @@ -903,7 +907,7 @@ class Application(QApplication): 'calibre versions newer than 2.0 do not run on Windows XP. This is' ' because the graphics toolkit calibre uses (Qt 5) crashes a lot' ' on Windows XP. We suggest you stay with calibre 1.48' - ' which works well on Windows XP.') % 'http://download.calibre-ebook.com/1.48.0/', show=True) + ' which works well on Windows XP.') % 'https://download.calibre-ebook.com/1.48.0/', show=True) raise SystemExit(1) if iswindows: @@ -978,22 +982,22 @@ class Application(QApplication): icon_map = self.__icon_map_memory_ = {} pcache = {} for k, v in iteritems({ - 'DialogYesButton': u'ok.png', - 'DialogNoButton': u'window-close.png', - 'DialogCloseButton': u'window-close.png', - 'DialogOkButton': u'ok.png', - 'DialogCancelButton': u'window-close.png', - 'DialogHelpButton': u'help.png', - 'DialogOpenButton': u'document_open.png', - 'DialogSaveButton': u'save.png', - 'DialogApplyButton': u'ok.png', - 'DialogDiscardButton': u'trash.png', - 'MessageBoxInformation': u'dialog_information.png', - 'MessageBoxWarning': u'dialog_warning.png', - 'MessageBoxCritical': u'dialog_error.png', - 'MessageBoxQuestion': u'dialog_question.png', - 'BrowserReload': u'view-refresh.png', - 'LineEditClearButton': u'clear_left.png', + 'DialogYesButton': 'ok.png', + 'DialogNoButton': 'window-close.png', + 'DialogCloseButton': 'window-close.png', + 'DialogOkButton': 'ok.png', + 'DialogCancelButton': 'window-close.png', + 'DialogHelpButton': 'help.png', + 'DialogOpenButton': 'document_open.png', + 'DialogSaveButton': 'save.png', + 'DialogApplyButton': 'ok.png', + 'DialogDiscardButton': 'trash.png', + 'MessageBoxInformation': 'dialog_information.png', + 'MessageBoxWarning': 'dialog_warning.png', + 'MessageBoxCritical': 'dialog_error.png', + 'MessageBoxQuestion': 'dialog_question.png', + 'BrowserReload': 'view-refresh.png', + 'LineEditClearButton': 'clear_left.png', }): if v not in pcache: p = I(v) @@ -1242,7 +1246,7 @@ def elided_text(text, font=None, width=300, pos='middle'): from PyQt5.Qt import QFontMetrics, QApplication fm = QApplication.fontMetrics() if font is None else (font if isinstance(font, QFontMetrics) else QFontMetrics(font)) delta = 4 - ellipsis = u'\u2026' + ellipsis = '\u2026' def remove_middle(x): mid = len(x) // 2 @@ -1361,7 +1365,7 @@ def set_app_uid(val): try: AppUserModelID(unicode_type(val)) except Exception as err: - prints(u'Failed to set app uid with error:', as_unicode(err)) + prints('Failed to set app uid with error:', as_unicode(err)) return False return True diff --git a/src/calibre/gui2/actions/__init__.py b/src/calibre/gui2/actions/__init__.py index 59049a1a07..8383fd469a 100644 --- a/src/calibre/gui2/actions/__init__.py +++ b/src/calibre/gui2/actions/__init__.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -19,7 +20,7 @@ from polyglot.builtins import unicode_type, string_or_bytes def menu_action_unique_name(plugin, unique_name): - return u'%s : menu action : %s'%(plugin.unique_name, unique_name) + return '%s : menu action : %s'%(plugin.unique_name, unique_name) class InterfaceAction(QObject): @@ -151,7 +152,7 @@ class InterfaceAction(QObject): bn = self.__class__.__name__ if getattr(self.interface_action_base_plugin, 'name'): bn = self.interface_action_base_plugin.name - return u'Interface Action: %s (%s)'%(bn, self.name) + return 'Interface Action: %s (%s)'%(bn, self.name) def create_action(self, spec=None, attr='qaction', shortcut_name=None): if spec is None: diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py index d833efcb78..444e654ba9 100644 --- a/src/calibre/gui2/actions/add.py +++ b/src/calibre/gui2/actions/add.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -331,7 +332,8 @@ class AddAction(InterfaceAction): create_book(mi, pt.name, fmt=empty_format) fmts = [pt.name] ids.append(db.import_book(mi, fmts)) - tuple(map(os.remove, orig_fmts)) + for path in orig_fmts: + os.remove(path) self.refresh_gui(num) if ids: ids.reverse() diff --git a/src/calibre/gui2/actions/add_to_library.py b/src/calibre/gui2/actions/add_to_library.py index 9fe4da3b83..21e984b89f 100644 --- a/src/calibre/gui2/actions/add_to_library.py +++ b/src/calibre/gui2/actions/add_to_library.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/annotate.py b/src/calibre/gui2/actions/annotate.py index 711ede7ccd..224de0ced9 100644 --- a/src/calibre/gui2/actions/annotate.py +++ b/src/calibre/gui2/actions/annotate.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/catalog.py b/src/calibre/gui2/actions/catalog.py index 67cf726202..0c6144e645 100644 --- a/src/calibre/gui2/actions/catalog.py +++ b/src/calibre/gui2/actions/catalog.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -85,7 +86,7 @@ class GenerateCatalogAction(InterfaceAction): id = self.gui.library_view.model().add_catalog(job.catalog_file_path, job.catalog_title) self.gui.library_view.model().beginResetModel(), self.gui.library_view.model().endResetModel() if job.catalog_sync: - sync = dynamic.get('catalogs_to_be_synced', set([])) + sync = dynamic.get('catalogs_to_be_synced', set()) sync.add(id) dynamic.set('catalogs_to_be_synced', sync) self.gui.status_bar.show_message(_('Catalog generated.'), 3000) diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py index 3ea3a6ddd9..cbf2410e79 100644 --- a/src/calibre/gui2/actions/choose_library.py +++ b/src/calibre/gui2/actions/choose_library.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals -from __future__ import print_function __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' @@ -252,7 +252,7 @@ class ChooseLibraryAction(InterfaceAction): for i in range(5): ac = self.create_action(spec=('', None, None, None), attr='switch_action%d'%i) - ac.setObjectName(str(i)) + ac.setObjectName(unicode_type(i)) self.switch_actions.append(ac) ac.setVisible(False) connect_lambda(ac.triggered, self, lambda self: @@ -329,7 +329,7 @@ class ChooseLibraryAction(InterfaceAction): self.prev_lname = self.last_lname self.last_lname = lname if len(lname) > 16: - lname = lname[:16] + u'…' + lname = lname[:16] + '…' a = self.qaction a.setText(lname.replace('&', '&&&')) # I have no idea why this requires a triple ampersand self.update_tooltip(db.count()) diff --git a/src/calibre/gui2/actions/convert.py b/src/calibre/gui2/actions/convert.py index 310582865f..d464bdb679 100644 --- a/src/calibre/gui2/actions/convert.py +++ b/src/calibre/gui2/actions/convert.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -40,7 +41,7 @@ class ConvertAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/copy_to_library.py b/src/calibre/gui2/actions/copy_to_library.py index fa4a2635fa..82c7970453 100644 --- a/src/calibre/gui2/actions/copy_to_library.py +++ b/src/calibre/gui2/actions/copy_to_library.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/delete.py b/src/calibre/gui2/actions/delete.py index 7a04addcb3..12bd2695c4 100644 --- a/src/calibre/gui2/actions/delete.py +++ b/src/calibre/gui2/actions/delete.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -106,7 +107,7 @@ class DeleteAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False @@ -165,7 +166,7 @@ class DeleteAction(InterfaceAction): if not rows or len(rows) == 0: d = error_dialog(self.gui, err_title, _('No book selected')) d.exec_() - return set([]) + return set() return set(map(self.gui.library_view.model().id, rows)) def remove_format_by_id(self, book_id, fmt): diff --git a/src/calibre/gui2/actions/device.py b/src/calibre/gui2/actions/device.py index 99769c5cba..0898dc3f56 100644 --- a/src/calibre/gui2/actions/device.py +++ b/src/calibre/gui2/actions/device.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -12,7 +13,7 @@ from calibre.gui2.actions import InterfaceAction from calibre.gui2.dialogs.smartdevice import SmartdeviceDialog from calibre.utils.icu import primary_sort_key from calibre.utils.smtp import config as email_config -from polyglot.builtins import unicode_type, map +from polyglot.builtins import unicode_type class ShareConnMenu(QMenu): # {{{ @@ -111,7 +112,8 @@ class ShareConnMenu(QMenu): # {{{ (alias or account) + ' ' + _('(delete from library)')) self.email_to_menu.addAction(action1) self.email_to_and_delete_menu.addAction(action2) - tuple(map(self.memory.append, (action1, action2))) + self.memory.append(action1) + self.memory.append(action2) if default: ac = DeviceAction(dest, False, False, I('mail.png'), _('Email to') + ' ' +(alias or @@ -127,12 +129,14 @@ class ShareConnMenu(QMenu): # {{{ _('Select recipients') + ' ' + _('(delete from library)')) self.email_to_menu.addAction(action1) self.email_to_and_delete_menu.addAction(action2) - tuple(map(self.memory.append, (action1, action2))) + self.memory.append(action1) + self.memory.append(action2) tac1 = DeviceAction('choosemail:', False, False, I('mail.png'), _('Email to selected recipients...')) self.addAction(tac1) tac1.a_s.connect(sync_menu.action_triggered) - self.memory.append(tac1), self.email_actions.append(tac1) + self.memory.append(tac1) + self.email_actions.append(tac1) ac = self.addMenu(self.email_to_and_delete_menu) self.email_actions.append(ac) action1.a_s.connect(sync_menu.action_triggered) diff --git a/src/calibre/gui2/actions/edit_collections.py b/src/calibre/gui2/actions/edit_collections.py index 58b4c08f53..eda832f8fa 100644 --- a/src/calibre/gui2/actions/edit_collections.py +++ b/src/calibre/gui2/actions/edit_collections.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 8a11468de7..d4df4d3242 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -51,7 +52,7 @@ class EditMetadataAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False @@ -648,7 +649,7 @@ class EditMetadataAction(InterfaceAction): if not dest_mi.comments: dest_mi.comments = src_mi.comments else: - dest_mi.comments = unicode_type(dest_mi.comments) + u'\n\n' + unicode_type(src_mi.comments) + dest_mi.comments = unicode_type(dest_mi.comments) + '\n\n' + unicode_type(src_mi.comments) if src_mi.title and (not dest_mi.title or dest_mi.title == _('Unknown')): dest_mi.title = src_mi.title if (src_mi.authors and src_mi.authors[0] != _('Unknown')) and (not dest_mi.authors or dest_mi.authors[0] == _('Unknown')): @@ -701,7 +702,7 @@ class EditMetadataAction(InterfaceAction): if not dest_value: db.set_custom(dest_id, src_value, num=colnum) else: - dest_value = unicode_type(dest_value) + u'\n\n' + unicode_type(src_value) + dest_value = unicode_type(dest_value) + '\n\n' + unicode_type(src_value) db.set_custom(dest_id, dest_value, num=colnum) if (dt in {'bool', 'int', 'float', 'rating', 'datetime'} and dest_value is None): db.set_custom(dest_id, src_value, num=colnum) diff --git a/src/calibre/gui2/actions/embed.py b/src/calibre/gui2/actions/embed.py index 40bceae49e..39aae059c0 100644 --- a/src/calibre/gui2/actions/embed.py +++ b/src/calibre/gui2/actions/embed.py @@ -37,7 +37,7 @@ class EmbedAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/fetch_news.py b/src/calibre/gui2/actions/fetch_news.py index 28b623f9b7..5aeeb5c3ba 100644 --- a/src/calibre/gui2/actions/fetch_news.py +++ b/src/calibre/gui2/actions/fetch_news.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/help.py b/src/calibre/gui2/actions/help.py index b51d1ee606..da47c29d80 100644 --- a/src/calibre/gui2/actions/help.py +++ b/src/calibre/gui2/actions/help.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -22,6 +23,3 @@ class HelpAction(InterfaceAction): def show_help(self, *args): open_url(QUrl(localize_user_manual_link('https://manual.calibre-ebook.com'))) - - - diff --git a/src/calibre/gui2/actions/mark_books.py b/src/calibre/gui2/actions/mark_books.py index e8e5fd720f..2a95c7c2b9 100644 --- a/src/calibre/gui2/actions/mark_books.py +++ b/src/calibre/gui2/actions/mark_books.py @@ -39,7 +39,7 @@ class MarkBooksAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/next_match.py b/src/calibre/gui2/actions/next_match.py index 8aa904cbbf..4e00dd2dbe 100644 --- a/src/calibre/gui2/actions/next_match.py +++ b/src/calibre/gui2/actions/next_match.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/open.py b/src/calibre/gui2/actions/open.py index 02786349c7..122c0eedce 100644 --- a/src/calibre/gui2/actions/open.py +++ b/src/calibre/gui2/actions/open.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -24,5 +25,3 @@ class OpenFolderAction(InterfaceAction): enabled = loc == 'library' self.qaction.setEnabled(enabled) self.menuless_qaction.setEnabled(enabled) - - diff --git a/src/calibre/gui2/actions/polish.py b/src/calibre/gui2/actions/polish.py index 64224bdd79..7ad22efcec 100644 --- a/src/calibre/gui2/actions/polish.py +++ b/src/calibre/gui2/actions/polish.py @@ -420,7 +420,7 @@ class PolishAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py index f436450368..48ceb4db9b 100644 --- a/src/calibre/gui2/actions/preferences.py +++ b/src/calibre/gui2/actions/preferences.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/restart.py b/src/calibre/gui2/actions/restart.py index 872c8d5e58..9ce20eb6ed 100644 --- a/src/calibre/gui2/actions/restart.py +++ b/src/calibre/gui2/actions/restart.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -19,5 +20,3 @@ class RestartAction(InterfaceAction): def restart(self, *args): self.gui.quit(restart=True) - - diff --git a/src/calibre/gui2/actions/save_to_disk.py b/src/calibre/gui2/actions/save_to_disk.py index 0802211a48..28b16200c6 100644 --- a/src/calibre/gui2/actions/save_to_disk.py +++ b/src/calibre/gui2/actions/save_to_disk.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -7,12 +8,11 @@ __docformat__ = 'restructuredtext en' import os, numbers from functools import partial -from polyglot.builtins import itervalues, map - from calibre.utils.config import prefs from calibre.gui2 import error_dialog, Dispatcher, choose_dir from calibre.gui2.actions import InterfaceAction +from polyglot.builtins import itervalues, map class SaveToDiskAction(InterfaceAction): diff --git a/src/calibre/gui2/actions/show_book_details.py b/src/calibre/gui2/actions/show_book_details.py index 4e4ceac324..4d3c2d164c 100644 --- a/src/calibre/gui2/actions/show_book_details.py +++ b/src/calibre/gui2/actions/show_book_details.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/show_quickview.py b/src/calibre/gui2/actions/show_quickview.py index 279b91db60..28ce9aaf52 100644 --- a/src/calibre/gui2/actions/show_quickview.py +++ b/src/calibre/gui2/actions/show_quickview.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/show_template_tester.py b/src/calibre/gui2/actions/show_template_tester.py index 7f62c291fe..08fc12c654 100644 --- a/src/calibre/gui2/actions/show_template_tester.py +++ b/src/calibre/gui2/actions/show_template_tester.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/similar_books.py b/src/calibre/gui2/actions/similar_books.py index 5febe5f51f..c355425c14 100644 --- a/src/calibre/gui2/actions/similar_books.py +++ b/src/calibre/gui2/actions/similar_books.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' diff --git a/src/calibre/gui2/actions/toc_edit.py b/src/calibre/gui2/actions/toc_edit.py index dd4ef8c1a8..c39f3dc2ee 100644 --- a/src/calibre/gui2/actions/toc_edit.py +++ b/src/calibre/gui2/actions/toc_edit.py @@ -87,7 +87,7 @@ class ToCEditAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/tweak_epub.py b/src/calibre/gui2/actions/tweak_epub.py index 6650b891b2..970e0551f9 100644 --- a/src/calibre/gui2/actions/tweak_epub.py +++ b/src/calibre/gui2/actions/tweak_epub.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -74,7 +75,7 @@ class TweakEpubAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/unpack_book.py b/src/calibre/gui2/actions/unpack_book.py index e92627ea57..ff0f577487 100644 --- a/src/calibre/gui2/actions/unpack_book.py +++ b/src/calibre/gui2/actions/unpack_book.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -308,7 +309,7 @@ class UnpackBookAction(InterfaceAction): def drop_event(self, event, mime_data): mime = 'application/calibre+from_library' if mime_data.hasFormat(mime): - self.dropped_ids = tuple(map(int, str(mime_data.data(mime)).split())) + self.dropped_ids = tuple(map(int, mime_data.data(mime).data().split())) QTimer.singleShot(1, self.do_drop) return True return False diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py index 9ad6954d28..9bfdf925b7 100644 --- a/src/calibre/gui2/actions/view.py +++ b/src/calibre/gui2/actions/view.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -166,7 +167,7 @@ class ViewAction(InterfaceAction): rows = [r.row() for r in rows] book_ids = [db.id(r) for r in rows] formats = [[x.upper() for x in db.new_api.formats(book_id)] for book_id in book_ids] - all_fmts = set([]) + all_fmts = set() for x in formats: if x: for f in x: diff --git a/src/calibre/gui2/bars.py b/src/calibre/gui2/bars.py index 7d62a358b6..7df3a5f338 100644 --- a/src/calibre/gui2/bars.py +++ b/src/calibre/gui2/bars.py @@ -286,10 +286,10 @@ class ToolBar(QToolBar): # {{{ event.ignore() def dropEvent(self, event): - data = event.mimeData() + md = event.mimeData() mime = 'application/calibre+from_library' - if data.hasFormat(mime): - ids = list(map(int, str(data.data(mime)).split())) + if md.hasFormat(mime): + ids = list(map(int, md.data(mime).data().split())) tgt = None for ac in self.location_manager.available_actions: w = self.widgetForAction(ac) @@ -303,8 +303,8 @@ class ToolBar(QToolBar): # {{{ return mime = 'application/calibre+from_device' - if data.hasFormat(mime): - paths = [unicode_type(u.toLocalFile()) for u in data.urls()] + if md.hasFormat(mime): + paths = [unicode_type(u.toLocalFile()) for u in md.urls()] if paths: self.gui.iactions['Add Books'].add_books_from_device( self.gui.current_view(), paths=paths) @@ -312,7 +312,7 @@ class ToolBar(QToolBar): # {{{ return # Give added_actions an opportunity to process the drag&drop event - if self.check_iactions_for_drag(event, data, 'drop_event'): + if self.check_iactions_for_drag(event, md, 'drop_event'): event.accept() else: event.ignore() diff --git a/src/calibre/gui2/catalog/catalog_bibtex.py b/src/calibre/gui2/catalog/catalog_bibtex.py index 0e38160819..1bb607ae74 100644 --- a/src/calibre/gui2/catalog/catalog_bibtex.py +++ b/src/calibre/gui2/catalog/catalog_bibtex.py @@ -1,16 +1,17 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import with_statement +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' +from PyQt5.Qt import QWidget, QListWidgetItem + from calibre.gui2 import gprefs from calibre.gui2.catalog.catalog_bibtex_ui import Ui_Form from polyglot.builtins import unicode_type, range -from PyQt5.Qt import QWidget, QListWidgetItem class PluginWidget(QWidget, Ui_Form): diff --git a/src/calibre/gui2/catalog/catalog_csv_xml.py b/src/calibre/gui2/catalog/catalog_csv_xml.py index 03f6c16cc4..5e1a356b2b 100644 --- a/src/calibre/gui2/catalog/catalog_csv_xml.py +++ b/src/calibre/gui2/catalog/catalog_csv_xml.py @@ -1,15 +1,16 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import with_statement +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' __docformat__ = 'restructuredtext en' +from PyQt5.Qt import QWidget, QListWidgetItem, Qt, QVBoxLayout, QLabel, QListWidget + from calibre.gui2 import gprefs from calibre.gui2.ui import get_gui from polyglot.builtins import unicode_type, range -from PyQt5.Qt import QWidget, QListWidgetItem, Qt, QVBoxLayout, QLabel, QListWidget def get_saved_field_data(name, all_fields): diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.py b/src/calibre/gui2/catalog/catalog_epub_mobi.py index 2f7555d269..c303efc328 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.py +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.py @@ -1,6 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import print_function +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2009, Kovid Goyal ' @@ -15,7 +15,7 @@ from calibre.gui2 import gprefs, open_url, question_dialog, error_dialog from calibre.utils.config import JSONConfig from calibre.utils.icu import sort_key from calibre.utils.localization import localize_user_manual_link -from polyglot.builtins import unicode_type, zip, range +from polyglot.builtins import native_string_type, unicode_type, zip, range from .catalog_epub_mobi_ui import Ui_Form from PyQt5.Qt import (Qt, QAbstractItemView, QCheckBox, QComboBox, @@ -115,7 +115,7 @@ class PluginWidget(QWidget,Ui_Form): 'name':_('Wishlist item'), 'field':_('Tags'), 'pattern':'Wishlist', - 'prefix':u'\u00d7'},], + 'prefix':'\u00d7'},], ['table_widget','table_widget'])) self.OPTION_FIELDS = option_fields @@ -423,7 +423,7 @@ class PluginWidget(QWidget,Ui_Form): # Hook Preset signals self.preset_delete_pb.clicked.connect(self.preset_remove) self.preset_save_pb.clicked.connect(self.preset_save) - self.preset_field.currentIndexChanged[str].connect(self.preset_change) + self.preset_field.currentIndexChanged[native_string_type].connect(self.preset_change) self.blocking_all_signals = False @@ -615,7 +615,7 @@ class PluginWidget(QWidget,Ui_Form): # Populate the Presets combo box self.presets = JSONConfig("catalog_presets") self.preset_field.addItem("") - self.preset_field_values = sorted([p for p in self.presets], key=sort_key) + self.preset_field_values = sorted(self.presets, key=sort_key) self.preset_field.addItems(self.preset_field_values) def preset_change(self, item_name): @@ -1338,127 +1338,127 @@ class PrefixRules(GenericRulesTable): # Create a list of prefixes for user selection raw_prefix_list = [ - ('Ampersand',u'&'), - ('Angle left double',u'\u00ab'), - ('Angle left',u'\u2039'), - ('Angle right double',u'\u00bb'), - ('Angle right',u'\u203a'), - ('Arrow carriage return',u'\u21b5'), - ('Arrow double',u'\u2194'), - ('Arrow down',u'\u2193'), - ('Arrow left',u'\u2190'), - ('Arrow right',u'\u2192'), - ('Arrow up',u'\u2191'), - ('Asterisk',u'*'), - ('At sign',u'@'), - ('Bullet smallest',u'\u22c5'), - ('Bullet small',u'\u00b7'), - ('Bullet',u'\u2022'), - ('Cards clubs',u'\u2663'), - ('Cards diamonds',u'\u2666'), - ('Cards hearts',u'\u2665'), - ('Cards spades',u'\u2660'), - ('Caret',u'^'), - ('Checkmark',u'\u2713'), - ('Copyright circle c',u'\u00a9'), - ('Copyright circle r',u'\u00ae'), - ('Copyright trademark',u'\u2122'), - ('Currency cent',u'\u00a2'), - ('Currency dollar',u'$'), - ('Currency euro',u'\u20ac'), - ('Currency pound',u'\u00a3'), - ('Currency yen',u'\u00a5'), - ('Dagger double',u'\u2021'), - ('Dagger',u'\u2020'), - ('Degree',u'\u00b0'), - ('Dots3',u'\u2234'), - ('Hash',u'#'), - ('Infinity',u'\u221e'), - ('Lozenge',u'\u25ca'), - ('Math divide',u'\u00f7'), - ('Math empty',u'\u2205'), - ('Math equals',u'='), - ('Math minus',u'\u2212'), - ('Math plus circled',u'\u2295'), - ('Math times circled',u'\u2297'), - ('Math times',u'\u00d7'), - ('Paragraph',u'\u00b6'), - ('Percent',u'%'), - ('Plus-or-minus',u'\u00b1'), - ('Plus',u'+'), - ('Punctuation colon',u':'), - ('Punctuation colon-semi',u';'), - ('Punctuation exclamation',u'!'), - ('Punctuation question',u'?'), - ('Punctuation period',u'.'), - ('Punctuation slash back',u'\\'), - ('Punctuation slash forward',u'/'), - ('Section',u'\u00a7'), - ('Tilde',u'~'), - ('Vertical bar',u'|'), - ('Vertical bar broken',u'\u00a6'), - ('_0',u'0'), - ('_1',u'1'), - ('_2',u'2'), - ('_3',u'3'), - ('_4',u'4'), - ('_5',u'5'), - ('_6',u'6'), - ('_7',u'7'), - ('_8',u'8'), - ('_9',u'9'), - ('_A',u'A'), - ('_B',u'B'), - ('_C',u'C'), - ('_D',u'D'), - ('_E',u'E'), - ('_F',u'F'), - ('_G',u'G'), - ('_H',u'H'), - ('_I',u'I'), - ('_J',u'J'), - ('_K',u'K'), - ('_L',u'L'), - ('_M',u'M'), - ('_N',u'N'), - ('_O',u'O'), - ('_P',u'P'), - ('_Q',u'Q'), - ('_R',u'R'), - ('_S',u'S'), - ('_T',u'T'), - ('_U',u'U'), - ('_V',u'V'), - ('_W',u'W'), - ('_X',u'X'), - ('_Y',u'Y'), - ('_Z',u'Z'), - ('_a',u'a'), - ('_b',u'b'), - ('_c',u'c'), - ('_d',u'd'), - ('_e',u'e'), - ('_f',u'f'), - ('_g',u'g'), - ('_h',u'h'), - ('_i',u'i'), - ('_j',u'j'), - ('_k',u'k'), - ('_l',u'l'), - ('_m',u'm'), - ('_n',u'n'), - ('_o',u'o'), - ('_p',u'p'), - ('_q',u'q'), - ('_r',u'r'), - ('_s',u's'), - ('_t',u't'), - ('_u',u'u'), - ('_v',u'v'), - ('_w',u'w'), - ('_x',u'x'), - ('_y',u'y'), - ('_z',u'z'), + ('Ampersand', '&'), + ('Angle left double', '\u00ab'), + ('Angle left', '\u2039'), + ('Angle right double', '\u00bb'), + ('Angle right', '\u203a'), + ('Arrow carriage return', '\u21b5'), + ('Arrow double', '\u2194'), + ('Arrow down', '\u2193'), + ('Arrow left', '\u2190'), + ('Arrow right', '\u2192'), + ('Arrow up', '\u2191'), + ('Asterisk', '*'), + ('At sign', '@'), + ('Bullet smallest', '\u22c5'), + ('Bullet small', '\u00b7'), + ('Bullet', '\u2022'), + ('Cards clubs', '\u2663'), + ('Cards diamonds', '\u2666'), + ('Cards hearts', '\u2665'), + ('Cards spades', '\u2660'), + ('Caret', '^'), + ('Checkmark', '\u2713'), + ('Copyright circle c', '\u00a9'), + ('Copyright circle r', '\u00ae'), + ('Copyright trademark', '\u2122'), + ('Currency cent', '\u00a2'), + ('Currency dollar', '$'), + ('Currency euro', '\u20ac'), + ('Currency pound', '\u00a3'), + ('Currency yen', '\u00a5'), + ('Dagger double', '\u2021'), + ('Dagger', '\u2020'), + ('Degree', '\u00b0'), + ('Dots3', '\u2234'), + ('Hash', '#'), + ('Infinity', '\u221e'), + ('Lozenge', '\u25ca'), + ('Math divide', '\u00f7'), + ('Math empty', '\u2205'), + ('Math equals', '='), + ('Math minus', '\u2212'), + ('Math plus circled', '\u2295'), + ('Math times circled', '\u2297'), + ('Math times', '\u00d7'), + ('Paragraph', '\u00b6'), + ('Percent', '%'), + ('Plus-or-minus', '\u00b1'), + ('Plus', '+'), + ('Punctuation colon', ':'), + ('Punctuation colon-semi', ';'), + ('Punctuation exclamation', '!'), + ('Punctuation question', '?'), + ('Punctuation period', '.'), + ('Punctuation slash back', '\\'), + ('Punctuation slash forward', '/'), + ('Section', '\u00a7'), + ('Tilde', '~'), + ('Vertical bar', '|'), + ('Vertical bar broken', '\u00a6'), + ('_0', '0'), + ('_1', '1'), + ('_2', '2'), + ('_3', '3'), + ('_4', '4'), + ('_5', '5'), + ('_6', '6'), + ('_7', '7'), + ('_8', '8'), + ('_9', '9'), + ('_A', 'A'), + ('_B', 'B'), + ('_C', 'C'), + ('_D', 'D'), + ('_E', 'E'), + ('_F', 'F'), + ('_G', 'G'), + ('_H', 'H'), + ('_I', 'I'), + ('_J', 'J'), + ('_K', 'K'), + ('_L', 'L'), + ('_M', 'M'), + ('_N', 'N'), + ('_O', 'O'), + ('_P', 'P'), + ('_Q', 'Q'), + ('_R', 'R'), + ('_S', 'S'), + ('_T', 'T'), + ('_U', 'U'), + ('_V', 'V'), + ('_W', 'W'), + ('_X', 'X'), + ('_Y', 'Y'), + ('_Z', 'Z'), + ('_a', 'a'), + ('_b', 'b'), + ('_c', 'c'), + ('_d', 'd'), + ('_e', 'e'), + ('_f', 'f'), + ('_g', 'g'), + ('_h', 'h'), + ('_i', 'i'), + ('_j', 'j'), + ('_k', 'k'), + ('_l', 'l'), + ('_m', 'm'), + ('_n', 'n'), + ('_o', 'o'), + ('_p', 'p'), + ('_q', 'q'), + ('_r', 'r'), + ('_s', 's'), + ('_t', 't'), + ('_u', 'u'), + ('_v', 'v'), + ('_w', 'w'), + ('_x', 'x'), + ('_y', 'y'), + ('_z', 'z'), ] raw_prefix_list = sorted(raw_prefix_list, key=prefix_sorter) self.prefix_list = [x[1] for x in raw_prefix_list] diff --git a/src/calibre/gui2/comments_editor.py b/src/calibre/gui2/comments_editor.py index 0fffa212f0..f6e5229124 100644 --- a/src/calibre/gui2/comments_editor.py +++ b/src/calibre/gui2/comments_editor.py @@ -1,5 +1,6 @@ #!/usr/bin/env python2 # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai +from __future__ import absolute_import, division, print_function, unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' @@ -338,7 +339,7 @@ class EditorWidget(QWebView, LineEditECM): # {{{ @property def html(self): - ans = u'' + ans = '' try: if not self.page().mainFrame().documentElement().findFirst('meta[name="calibre-dont-sanitize"]').isNull(): # Bypass cleanup if special meta tag exists @@ -364,9 +365,9 @@ class EditorWidget(QWebView, LineEditECM): # {{{ x.tag not in ('script', 'style')] if len(elems) > 1: - ans = u'
%s
'%(u''.join(elems)) + ans = '
%s
'%(''.join(elems)) else: - ans = u''.join(elems) + ans = ''.join(elems) if not ans.startswith('<'): ans = '

%s

'%ans ans = xml_replace_entities(ans) @@ -482,7 +483,7 @@ class Highlighter(QSyntaxHighlighter): if state == State_Comment: start = pos while pos < len_: - if text[pos:pos+3] == u"-->": + if text[pos:pos+3] == "-->": pos += 3 state = State_Text break @@ -495,7 +496,7 @@ class Highlighter(QSyntaxHighlighter): while pos < len_: ch = text[pos] pos += 1 - if ch == u'>': + if ch == '>': state = State_Text break self.setFormat(start, pos - start, self.colors['doctype']) @@ -506,7 +507,7 @@ class Highlighter(QSyntaxHighlighter): while pos < len_: ch = text[pos] pos += 1 - if ch == u'>': + if ch == '>': state = State_Text break if not ch.isspace(): @@ -524,7 +525,7 @@ class Highlighter(QSyntaxHighlighter): pos -= 1 state = State_InsideTag break - if ch == u'>': + if ch == '>': state = State_Text break self.setFormat(start, pos - start, self.colors['tag']) @@ -537,10 +538,10 @@ class Highlighter(QSyntaxHighlighter): ch = text[pos] pos += 1 - if ch == u'/': + if ch == '/': continue - if ch == u'>': + if ch == '>': state = State_Text break @@ -557,11 +558,11 @@ class Highlighter(QSyntaxHighlighter): ch = text[pos] pos += 1 - if ch == u'=': + if ch == '=': state = State_AttributeValue break - if ch in (u'>', u'/'): + if ch in ('>', '/'): state = State_InsideTag break @@ -577,12 +578,12 @@ class Highlighter(QSyntaxHighlighter): pos += 1 # handle opening single quote - if ch == u"'": + if ch == "'": state = State_SingleQuote break # handle opening double quote - if ch == u'"': + if ch == '"': state = State_DoubleQuote break @@ -597,7 +598,7 @@ class Highlighter(QSyntaxHighlighter): ch = text[pos] if ch.isspace(): break - if ch in (u'>', u'/'): + if ch in ('>', '/'): break pos += 1 state = State_InsideTag @@ -610,7 +611,7 @@ class Highlighter(QSyntaxHighlighter): while pos < len_: ch = text[pos] pos += 1 - if ch == u"'": + if ch == "'": break state = State_InsideTag @@ -624,7 +625,7 @@ class Highlighter(QSyntaxHighlighter): while pos < len_: ch = text[pos] pos += 1 - if ch == u'"': + if ch == '"': break state = State_InsideTag @@ -635,18 +636,18 @@ class Highlighter(QSyntaxHighlighter): # State_Text and default while pos < len_: ch = text[pos] - if ch == u'<': - if text[pos:pos+4] == u"