Improve module import

- stop if one module couldn't be imported
- restrict import to module path
This commit is contained in:
Cédric Krier committed 2008-07-26 12:50:40 +02:00
1 parent 7f32771048
commit 22e109f45b
1 file changed
+10 -4
+10 -4
View File
@@ -7,6 +7,7 @@ import tools
import pooler
from netsvc import Logger, LOG_ERROR, LOG_INFO
import zipfile
import zipimport
OPJ = os.path.join
MODULES_PATH = OPJ(os.path.dirname(__file__), 'modules')
@@ -277,17 +278,22 @@ def register_classes():
continue
if not os.path.isfile(OPJ(MODULES_PATH, module+'.zip')):
# XXX must restrict to only modules paths
imp.load_module(module, *imp.find_module(module))
try:
imp.load_module(module, *imp.find_module(module,
[MODULES_PATH]))
except ImportError:
Logger().notify_channel('init', LOG_ERROR,
'Couldn\'t import module %s' % module)
break
else:
import zipimport
mod_path = OPJ(MODULES_PATH, module+'.zip')
try:
zimp = zipimport.zipimporter(mod_path)
zimp.load_module(module)
except zipimport.ZipImportError:
Logger().notify_channel('init', LOG_ERROR,
'Couldn\'t find module %s' % module)
'Couldn\'t import module %s' % module)
break
def load_modules(database, update_module=False, lang=None):
cursor = database.cursor()