diff --git a/src/calibre/ebooks/metadata/sources/update.py b/src/calibre/ebooks/metadata/sources/update.py index 44969d43f6..7fd4e54228 100644 --- a/src/calibre/ebooks/metadata/sources/update.py +++ b/src/calibre/ebooks/metadata/sources/update.py @@ -43,6 +43,18 @@ def load_plugin(src): return x +class PatchedSearchEngines(object): + + def __init__(self, ns): + self.__ns = ns + + def __getattr__(self, attr): + try: + return self.__ns[attr] + except KeyError: + raise AttributeError('{} not present in search_engines_module'.format(attr)) + + def patch_search_engines(src): global current_search_engines src = src.encode('utf-8') @@ -54,7 +66,7 @@ def patch_search_engines(src): cv = ns.get('current_version') if cv is None or cv <= builtin_search_engines.current_version: return - current_search_engines = ns + current_search_engines = PatchedSearchEngines(ns) def patch_plugins():