From 8a3dbc3061a4bb84eb12615b94e160ab70918b00 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 18 Oct 2020 10:48:03 +0530 Subject: [PATCH] More uses of plugins dict replaced --- src/calibre/gui2/actions/view.py | 4 ++-- src/calibre/gui2/viewer/highlights.py | 6 +++--- src/calibre/utils/fonts/win_fonts.py | 8 +++----- src/calibre/utils/icu.py | 15 ++++----------- src/calibre/utils/img.py | 21 ++++++++++----------- src/calibre/utils/open_with/windows.py | 3 +-- src/calibre/utils/windows/wintest.py | 4 ++-- src/calibre/utils/xml_parse.py | 5 +++-- 8 files changed, 28 insertions(+), 38 deletions(-) diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py index d6cd999cff..293fccca49 100644 --- a/src/calibre/gui2/actions/view.py +++ b/src/calibre/gui2/actions/view.py @@ -12,7 +12,7 @@ import time from functools import partial from PyQt5.Qt import QAction, QIcon, Qt, pyqtSignal -from calibre.constants import ismacos, iswindows, plugins +from calibre.constants import ismacos, iswindows from calibre.gui2 import ( Dispatcher, config, elided_text, error_dialog, info_dialog, open_local_file, question_dialog @@ -166,7 +166,7 @@ class ViewAction(InterfaceAction): kwargs=dict(args=args)) else: if iswindows: - winutil = plugins['winutil'][0] + from calibre_extensions import winutil ext = name.rpartition('.')[-1] if ext: try: diff --git a/src/calibre/gui2/viewer/highlights.py b/src/calibre/gui2/viewer/highlights.py index 9a089ecfa5..85f6634ef8 100644 --- a/src/calibre/gui2/viewer/highlights.py +++ b/src/calibre/gui2/viewer/highlights.py @@ -14,7 +14,7 @@ from PyQt5.Qt import ( ) from calibre.constants import ( - builtin_colors_dark, builtin_colors_light, builtin_decorations, plugins + builtin_colors_dark, builtin_colors_light, builtin_decorations ) from calibre.ebooks.epub.cfi.parse import cfi_sort_key from calibre.gui2 import error_dialog, is_dark_theme @@ -26,6 +26,7 @@ from calibre.gui2.viewer.config import vprefs from calibre.gui2.viewer.search import SearchInput from calibre.gui2.viewer.shortcuts import index_to_key_sequence from calibre.gui2.widgets2 import Dialog +from calibre_extensions.progress_indicator import set_no_activate_on_click from polyglot.builtins import range decoration_cache = {} @@ -156,8 +157,7 @@ class Highlights(QTreeWidget): self.setHeaderHidden(True) self.num_of_items = 0 self.setSelectionMode(self.ExtendedSelection) - pi = plugins['progress_indicator'][0] - pi.set_no_activate_on_click(self) + set_no_activate_on_click(self) self.itemActivated.connect(self.item_activated) self.currentItemChanged.connect(self.current_item_changed) self.uuid_map = {} diff --git a/src/calibre/utils/fonts/win_fonts.py b/src/calibre/utils/fonts/win_fonts.py index 9826d2709a..3cb726da9f 100644 --- a/src/calibre/utils/fonts/win_fonts.py +++ b/src/calibre/utils/fonts/win_fonts.py @@ -10,7 +10,7 @@ import os, sys, atexit from itertools import product from calibre import prints, isbytestring -from calibre.constants import plugins, filesystem_encoding +from calibre.constants import filesystem_encoding from calibre.utils.fonts.utils import (is_truetype_font, get_font_names, get_font_characteristics) from polyglot.builtins import iteritems, unicode_type @@ -140,10 +140,8 @@ class WinFonts(object): def load_winfonts(): - w, err = plugins['winfonts'] - if w is None: - raise RuntimeError('Failed to load the winfonts module: %s'%err) - return WinFonts(w) + from calibre_extensions import winfonts + return WinFonts(winfonts) def test_ttf_reading(): diff --git a/src/calibre/utils/icu.py b/src/calibre/utils/icu.py index f42448e875..62d186f88a 100644 --- a/src/calibre/utils/icu.py +++ b/src/calibre/utils/icu.py @@ -1,32 +1,25 @@ #!/usr/bin/env python # vim:fileencoding=utf-8 - __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import sys -from polyglot.builtins import filter - # Setup code {{{ import codecs +import sys -from calibre.constants import plugins from calibre.utils.config_base import tweaks -from polyglot.builtins import unicode_type, cmp +from calibre_extensions import icu as _icu +from polyglot.builtins import cmp, filter, unicode_type _locale = _collator = _primary_collator = _sort_collator = _numeric_collator = _case_sensitive_collator = None cmp -_none = u'' +_none = '' _none2 = b'' _cmap = {} -_icu, err = plugins['icu'] -if _icu is None: - raise RuntimeError('Failed to load icu with error: %s' % err) -del err icu_unicode_version = getattr(_icu, 'unicode_version', None) _nmodes = {m:getattr(_icu, m) for m in ('NFC', 'NFD', 'NFKC', 'NFKD')} diff --git a/src/calibre/utils/img.py b/src/calibre/utils/img.py index 355f8d6a70..67bf000735 100644 --- a/src/calibre/utils/img.py +++ b/src/calibre/utils/img.py @@ -10,26 +10,24 @@ import subprocess import sys import tempfile from io import BytesIO -from threading import Thread - # We use explicit module imports so tracebacks when importing are more useful from PyQt5.QtCore import QBuffer, QByteArray, Qt -from PyQt5.QtGui import QColor, QImage, QImageReader, QImageWriter, QPixmap, QTransform +from PyQt5.QtGui import ( + QColor, QImage, QImageReader, QImageWriter, QPixmap, QTransform +) +from threading import Thread from calibre import fit_image, force_unicode -from calibre.constants import iswindows, plugins +from calibre.constants import iswindows from calibre.ptempfile import TemporaryDirectory from calibre.utils.config_base import tweaks from calibre.utils.filenames import atomic_rename from calibre.utils.imghdr import what +from calibre_extensions import imageops from polyglot.builtins import string_or_bytes, unicode_type + # Utilities {{{ -imageops, imageops_err = plugins['imageops'] -if imageops is None: - raise RuntimeError(imageops_err) - - class NotImage(ValueError): pass @@ -619,9 +617,10 @@ def encode_jpeg(file_path, quality=80): def test(): # {{{ - from calibre.ptempfile import TemporaryDirectory - from calibre import CurrentDir from glob import glob + + from calibre import CurrentDir + from calibre.ptempfile import TemporaryDirectory img = image_from_data(I('lt.png', data=True, allow_user_override=False)) with TemporaryDirectory() as tdir, CurrentDir(tdir): save_image(img, 'test.jpg') diff --git a/src/calibre/utils/open_with/windows.py b/src/calibre/utils/open_with/windows.py index 28136de470..ac674dbf99 100644 --- a/src/calibre/utils/open_with/windows.py +++ b/src/calibre/utils/open_with/windows.py @@ -9,13 +9,12 @@ import re import sys from PyQt5.Qt import QBuffer, QByteArray, QPixmap, Qt, QtWin -from calibre.constants import plugins from calibre.gui2 import must_use_qt from calibre.utils.winreg.default_programs import split_commandline +from calibre_extensions import winutil from polyglot.builtins import filter ICON_SIZE = 256 -winutil = plugins['winutil'][0] def hicon_to_pixmap(hicon): diff --git a/src/calibre/utils/windows/wintest.py b/src/calibre/utils/windows/wintest.py index fedae1f2da..8562fb67c7 100644 --- a/src/calibre/utils/windows/wintest.py +++ b/src/calibre/utils/windows/wintest.py @@ -11,8 +11,8 @@ from polyglot.builtins import unicode_type class TestWinutil(unittest.TestCase): def setUp(self): - from calibre.constants import plugins - self.winutil = plugins['winutil'][0] + from calibre_extensions import winutil + self.winutil = winutil def tearDown(self): del self.winutil diff --git a/src/calibre/utils/xml_parse.py b/src/calibre/utils/xml_parse.py index 1c956a47eb..1f23641d93 100644 --- a/src/calibre/utils/xml_parse.py +++ b/src/calibre/utils/xml_parse.py @@ -39,7 +39,7 @@ def safe_xml_fromstring(string_or_bytes, recover=True): def find_tests(): import unittest, tempfile, os - from calibre.constants import iswindows, plugins + from calibre.constants import iswindows class TestXMLParse(unittest.TestCase): @@ -48,7 +48,8 @@ def find_tests(): tf.write(b'external') self.temp_file = os.path.abspath(tf.name) if iswindows: - self.temp_file = plugins['winutil'][0].get_long_path_name(self.temp_file) + from calibre_extensions.winutil import get_long_path_name + self.temp_file = get_long_path_name(self.temp_file) def tearDown(self): os.remove(self.temp_file)