Replace more uses of plugins dict

This commit is contained in:
Kovid Goyal 2020-10-18 09:33:09 +05:30
parent 983bb2aabb
commit 830b1a94e6
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
9 changed files with 19 additions and 39 deletions

View File

@ -8,12 +8,8 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
import io
from struct import pack
from calibre.constants import plugins
from polyglot.builtins import range
cPalmdoc = plugins['cPalmdoc'][0]
if not cPalmdoc:
raise RuntimeError(('Failed to load required cPalmdoc module: '
'%s')%plugins['cPalmdoc'][1])
from calibre_extensions import cPalmdoc
def decompress_doc(data):

View File

@ -14,16 +14,14 @@ import sys
import struct
from calibre.ebooks.djvu.djvubzzdec import BZZDecoder
from calibre.constants import plugins
class DjvuChunk(object):
def __init__(self, buf, start, end, align=True, bigendian=True,
inclheader=False, verbose=0):
self.speedup, err = plugins['bzzdec']
if self.speedup is None:
raise RuntimeError('Failed to load bzzdec plugin: %s' % err)
from calibre_extensions import speedup
self.speedup = speedup
self.subtype = None
self._subchunks = []
self.buf = buf

View File

@ -733,10 +733,9 @@ class BZZDecoder():
# for testing
def main():
import sys
from calibre.constants import plugins
from calibre_extensions import bzzdec as d
with open(sys.argv[1], "rb") as f:
raw = f.read()
d = plugins['bzzdec'][0]
print(d.decompress(raw))

View File

@ -7,11 +7,7 @@ LZX compression/decompression wrapper.
__license__ = 'GPL v3'
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
from calibre.constants import plugins
_lzx, _error = plugins['lzx']
if _lzx is None:
raise RuntimeError('Failed to load the lzx plugin: %s' % _error)
from calibre_extensions import lzx as _lzx
__all__ = ['Compressor', 'Decompressor', 'LZXError']

View File

@ -17,12 +17,9 @@ import calibre.ebooks.lit.mssha1 as mssha1
from calibre.ebooks.oeb.base import urlnormalize, xpath
from calibre.ebooks.oeb.reader import OEBReader
from calibre.ebooks import DRMError
from calibre.constants import plugins
from polyglot.builtins import codepoint_to_chr, unicode_type, string_or_bytes, range, itervalues
from polyglot.urllib import unquote as urlunquote, urldefrag
lzx, lxzerror = plugins['lzx']
msdes, msdeserror = plugins['msdes']
from calibre_extensions import lzx, msdes
__all__ = ["LitReader"]

View File

@ -27,8 +27,7 @@ from calibre.ebooks.oeb.base import prefixname, \
from calibre.ebooks.oeb.stylizer import Stylizer
from calibre.ebooks.lit.lzx import Compressor
import calibre
from calibre.constants import plugins
msdes, msdeserror = plugins['msdes']
from calibre_extensions import msdes
import calibre.ebooks.lit.mssha1 as mssha1
from polyglot.builtins import codepoint_to_chr, unicode_type, string_or_bytes, range, zip, native_string_type
from polyglot.urllib import urldefrag, unquote

View File

@ -10,12 +10,10 @@ import codecs, zlib, numbers
from io import BytesIO
from datetime import datetime
from calibre.constants import plugins
from calibre.utils.logging import default_log
from polyglot.builtins import iteritems, unicode_type, codepoint_to_chr
from polyglot.binary import as_hex_bytes
pdf_float = plugins['speedup'][0].pdf_float
from calibre_extensions.speedup import pdf_float
EOL = b'\n'

View File

@ -8,14 +8,13 @@ import os
import re
import shutil
import sys
from calibre_extensions import hunspell
from collections import defaultdict, namedtuple
from functools import partial
from itertools import chain
from calibre import prints
from calibre.constants import (
config_dir, filesystem_encoding, iswindows, plugins
)
from calibre.constants import config_dir, filesystem_encoding, iswindows
from calibre.spell import parse_lang_code
from calibre.utils.config import JSONConfig
from calibre.utils.icu import capitalize
@ -24,9 +23,6 @@ from polyglot.builtins import filter, iteritems, itervalues, map, unicode_type
Dictionary = namedtuple('Dictionary', 'primary_locale locales dicpath affpath builtin name id')
LoadedDictionary = namedtuple('Dictionary', 'primary_locale locales obj builtin name id')
hunspell = plugins['hunspell'][0]
if hunspell is None:
raise RuntimeError('Failed to load hunspell: %s' % plugins['hunspell'][1])
dprefs = JSONConfig('dictionaries/prefs.json')
dprefs.defaults['preferred_dictionaries'] = {}
dprefs.defaults['preferred_locales'] = {}

View File

@ -12,7 +12,7 @@ Test a binary calibre build to ensure that all needed binary images/libraries ha
import os, ctypes, sys, unittest, time, shutil
from calibre.constants import plugins, iswindows, islinux, ismacos, plugins_loc
from calibre.constants import iswindows, islinux, ismacos, plugins_loc
from polyglot.builtins import iteritems, map, unicode_type, getenv
is_ci = os.environ.get('CI', '').lower() == 'true'
@ -22,7 +22,8 @@ class BuildTest(unittest.TestCase):
@unittest.skipUnless(iswindows and not is_ci, 'DLL loading needs testing only on windows (non-continuous integration)')
def test_dlls(self):
base = plugins['winutil'][0].get_dll_directory()
from calibre_extensions import winutil
base = winutil.get_dll_directory()
for x in os.listdir(base):
if x.lower().endswith('.dll'):
try:
@ -105,14 +106,15 @@ class BuildTest(unittest.TestCase):
if islinux and not os.path.exists('/dev/bus/usb'):
# libusb fails to initialize in containers without USB subsystems
exclusions.update(set('libusb libmtp'.split()))
for name in plugins:
from importlib import import_module
from importlib.resources import contents
for name in contents('calibre_extensions'):
if name in exclusions:
if name in ('libusb', 'libmtp'):
# Just check that the DLL can be loaded
ctypes.CDLL(os.path.join(plugins_loc, name + ('.dylib' if ismacos else '.so')))
continue
mod, err = plugins[name]
self.assertTrue(mod, f'Failed to load plugin: {name} with error: {err}')
import_module('calibre_extensions.' + name)
def test_lxml(self):
from calibre.utils.cleantext import test_clean_xml_chars
@ -147,9 +149,8 @@ class BuildTest(unittest.TestCase):
@unittest.skipUnless(iswindows, 'winutil is windows only')
def test_winutil(self):
import tempfile
from calibre.constants import plugins
from calibre import strftime
winutil = plugins['winutil'][0]
from calibre_extensions import winutil
def au(x, name):
self.assertTrue(
@ -363,7 +364,7 @@ class BuildTest(unittest.TestCase):
@unittest.skipUnless(iswindows, 'WPD is windows only')
def test_wpd(self):
wpd = plugins['wpd'][0]
from calibre_extensions import wpd
try:
wpd.init('calibre', 1, 1, 1)
except wpd.NoWPD: