fixes related to ModuleLoadError

This commit is contained in:
Romain Bignon 2010-11-17 19:43:25 +01:00
commit b6821b0567
5 changed files with 33 additions and 28 deletions

View file

@ -24,6 +24,7 @@ from PyQt4.QtCore import SIGNAL, Qt, QVariant, QUrl
import re
from logging import warning
from weboob.core.modules import ModuleLoadError
from weboob.capabilities.account import ICapAccount, Account, AccountRegisterError
from weboob.tools.application.qt.backendcfg_ui import Ui_BackendCfg
from weboob.tools.ordereddict import OrderedDict
@ -79,7 +80,11 @@ class BackendCfg(QDialog):
def loadConfiguredBackendsList(self):
self.ui.configuredBackendsList.clear()
for instance_name, name, params in self.weboob.backends_config.iter_backends():
backend = self.weboob.modules_loader.get_or_load_module(name)
try:
backend = self.weboob.modules_loader.get_or_load_module(name)
except ModuleLoadError:
backend = None
if not backend or self.caps and not backend.has_caps(*self.caps):
continue
@ -193,7 +198,10 @@ class BackendCfg(QDialog):
self.tr('Please select a backend'))
return
backend = self.weboob.modules_loader.get_or_load_module(unicode(selection[0].text()).lower())
try:
backend = self.weboob.modules_loader.get_or_load_module(unicode(selection[0].text()).lower())
except ModuleLoadError:
backend = None
if not backend:
QMessageBox.critical(self, self.tr('Unable to add a configured backend'),
@ -298,7 +306,10 @@ class BackendCfg(QDialog):
if not selection:
return
backend = self.weboob.modules_loader.get_or_load_module(unicode(selection[0].text()).lower())
try:
backend = self.weboob.modules_loader.get_or_load_module(unicode(selection[0].text()).lower())
except ModuleLoadError:
backend = None
if not backend:
return

View file

@ -142,11 +142,10 @@ class ReplApplication(Cmd, BaseApplication):
return True
def register_backend(self, name, ask_add=True):
backend = None
try:
backend = self.weboob.modules_loader.get_or_load_module(name)
except ModuleLoadError, e:
self.logger.debug(e)
backend = None
if not backend:
print 'Backend "%s" does not exist.' % name
@ -201,18 +200,17 @@ class ReplApplication(Cmd, BaseApplication):
if params is None:
params = {}
backend = None
if not edit:
try:
backend = self.weboob.modules_loader.get_or_load_module(name)
except ModuleLoadError, e:
self.logger.debug(e)
backend = None
else:
bname, items = self.weboob.backends_config.get_backend(name)
try:
backend = self.weboob.modules_loader.get_or_load_module(bname)
except ModuleLoadError, e:
self.logger.debug(e)
except ModuleLoadError:
backend = None
items.update(params)
params = items
if not backend:
@ -1053,9 +1051,9 @@ class ReplApplication(Cmd, BaseApplication):
def do_inspect(self, line):
"""
inspect BACKEND_NAME
Display the HTML string of the current page of the specified backend's browser.
If webkit_mechanize_browser Python module is installed, HTML is displayed in a WebKit GUI.
"""
if len(self.enabled_backends) == 1: