Kaynağa Gözat

[mod] move load_module function to utils

Adam Tauber 8 yıl önce
ebeveyn
işleme
55dc538398
2 değiştirilmiş dosya ile 17 ekleme ve 13 silme
  1. 4
    13
      searx/engines/__init__.py
  2. 13
    0
      searx/utils.py

+ 4
- 13
searx/engines/__init__.py Dosyayı Görüntüle

@@ -16,13 +16,13 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
16 16
 (C) 2013- by Adam Tauber, <asciimoo@gmail.com>
17 17
 '''
18 18
 
19
-from os.path import realpath, dirname, splitext, join
19
+from os.path import realpath, dirname
20 20
 import sys
21
-from imp import load_source
22 21
 from flask_babel import gettext
23 22
 from operator import itemgetter
24 23
 from searx import settings
25 24
 from searx import logger
25
+from searx.utils import load_module
26 26
 
27 27
 
28 28
 logger = logger.getChild('engines')
@@ -32,6 +32,7 @@ engine_dir = dirname(realpath(__file__))
32 32
 engines = {}
33 33
 
34 34
 categories = {'general': []}
35
+_initialized = False
35 36
 
36 37
 engine_shortcuts = {}
37 38
 engine_default_args = {'paging': False,
@@ -46,16 +47,6 @@ engine_default_args = {'paging': False,
46 47
                        'time_range_support': False}
47 48
 
48 49
 
49
-def load_module(filename):
50
-    modname = splitext(filename)[0]
51
-    if modname in sys.modules:
52
-        del sys.modules[modname]
53
-    filepath = join(engine_dir, filename)
54
-    module = load_source(modname, filepath)
55
-    module.name = modname
56
-    return module
57
-
58
-
59 50
 def load_engine(engine_data):
60 51
 
61 52
     if '_' in engine_data['name']:
@@ -65,7 +56,7 @@ def load_engine(engine_data):
65 56
     engine_module = engine_data['engine']
66 57
 
67 58
     try:
68
-        engine = load_module(engine_module + '.py')
59
+        engine = load_module(engine_module + '.py', engine_dir)
69 60
     except:
70 61
         logger.exception('Cannot load engine "{}"'.format(engine_module))
71 62
         return None

+ 13
- 0
searx/utils.py Dosyayı Görüntüle

@@ -6,7 +6,10 @@ import re
6 6
 from babel.dates import format_date
7 7
 from codecs import getincrementalencoder
8 8
 from HTMLParser import HTMLParser
9
+from imp import load_source
10
+from os.path import splitext, join
9 11
 from random import choice
12
+import sys
10 13
 
11 14
 from searx.version import VERSION_STRING
12 15
 from searx.languages import language_codes
@@ -285,3 +288,13 @@ def is_valid_lang(lang):
285 288
             if l[1].lower() == lang.lower():
286 289
                 return (True, l[0][:2], l[1].lower())
287 290
         return False
291
+
292
+
293
+def load_module(filename, module_dir):
294
+    modname = splitext(filename)[0]
295
+    if modname in sys.modules:
296
+        del sys.modules[modname]
297
+    filepath = join(module_dir, filename)
298
+    module = load_source(modname, filepath)
299
+    module.name = modname
300
+    return module