[mod] move load_module function to utils

This commit is contained in:
Adam Tauber 2016-11-19 17:51:19 +01:00
parent 827f9e41ca
commit 55dc538398
2 changed files with 17 additions and 13 deletions

View File

@ -16,13 +16,13 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
(C) 2013- by Adam Tauber, <asciimoo@gmail.com> (C) 2013- by Adam Tauber, <asciimoo@gmail.com>
''' '''
from os.path import realpath, dirname, splitext, join from os.path import realpath, dirname
import sys import sys
from imp import load_source
from flask_babel import gettext from flask_babel import gettext
from operator import itemgetter from operator import itemgetter
from searx import settings from searx import settings
from searx import logger from searx import logger
from searx.utils import load_module
logger = logger.getChild('engines') logger = logger.getChild('engines')
@ -32,6 +32,7 @@ engine_dir = dirname(realpath(__file__))
engines = {} engines = {}
categories = {'general': []} categories = {'general': []}
_initialized = False
engine_shortcuts = {} engine_shortcuts = {}
engine_default_args = {'paging': False, engine_default_args = {'paging': False,
@ -46,16 +47,6 @@ engine_default_args = {'paging': False,
'time_range_support': False} 'time_range_support': False}
def load_module(filename):
modname = splitext(filename)[0]
if modname in sys.modules:
del sys.modules[modname]
filepath = join(engine_dir, filename)
module = load_source(modname, filepath)
module.name = modname
return module
def load_engine(engine_data): def load_engine(engine_data):
if '_' in engine_data['name']: if '_' in engine_data['name']:
@ -65,7 +56,7 @@ def load_engine(engine_data):
engine_module = engine_data['engine'] engine_module = engine_data['engine']
try: try:
engine = load_module(engine_module + '.py') engine = load_module(engine_module + '.py', engine_dir)
except: except:
logger.exception('Cannot load engine "{}"'.format(engine_module)) logger.exception('Cannot load engine "{}"'.format(engine_module))
return None return None

View File

@ -6,7 +6,10 @@ import re
from babel.dates import format_date from babel.dates import format_date
from codecs import getincrementalencoder from codecs import getincrementalencoder
from HTMLParser import HTMLParser from HTMLParser import HTMLParser
from imp import load_source
from os.path import splitext, join
from random import choice from random import choice
import sys
from searx.version import VERSION_STRING from searx.version import VERSION_STRING
from searx.languages import language_codes from searx.languages import language_codes
@ -285,3 +288,13 @@ def is_valid_lang(lang):
if l[1].lower() == lang.lower(): if l[1].lower() == lang.lower():
return (True, l[0][:2], l[1].lower()) return (True, l[0][:2], l[1].lower())
return False return False
def load_module(filename, module_dir):
modname = splitext(filename)[0]
if modname in sys.modules:
del sys.modules[modname]
filepath = join(module_dir, filename)
module = load_source(modname, filepath)
module.name = modname
return module