%PDF- %PDF-
Direktori : /lib/calibre/qt/ |
Current File : //lib/calibre/qt/loader.py |
#!/usr/bin/env python3 # vim:fileencoding=utf-8 # License: GPL v3 Copyright: 2021, Kovid Goyal <kovid at kovidgoyal.net> from importlib import import_module import sys def dynamic_load(name, name_map, already_imported, qt_modules, module_names=()): ans = already_imported.get(name, already_imported) if ans is not already_imported: return ans mod_name = name_map.get(name) if mod_name is not None: mod = qt_modules.get(mod_name) if mod is None: try: mod = qt_modules[mod_name] = import_module(mod_name) except ImportError as err: mod = qt_modules[mod_name] = False print( 'Failed to import PyQt module:', mod_name, 'with error:', err, file=sys.stderr ) if mod is not False: if name in module_names: q = mod else: q = getattr(mod, name, qt_modules) if q is not qt_modules: already_imported[name] = q return q raise AttributeError(f'The object {name} is not a known Qt object')