add existing_module_names method

This commit is contained in:
Christophe Benz 2010-07-10 02:30:19 +02:00
commit b3c509d56e

View file

@ -25,6 +25,7 @@ import os
import re import re
import stat import stat
import weboob.backends
from weboob.core.backend import BaseBackend from weboob.core.backend import BaseBackend
from weboob.capabilities.cap import ICap from weboob.capabilities.cap import ICap
@ -152,14 +153,17 @@ class ModulesLoader(object):
self.load_module('weboob.backends.%s' % name) self.load_module('weboob.backends.%s' % name)
return self.modules[name] return self.modules[name]
def load(self): def iter_existing_module_names(self):
import weboob.backends
for path in weboob.backends.__path__: for path in weboob.backends.__path__:
regexp = re.compile('^%s/([\w\d_]+)$' % path) regexp = re.compile('^%s/([\w\d_]+)$' % path)
for root, dirs, files in os.walk(path): for root, dirs, files in os.walk(path):
m = regexp.match(root) m = regexp.match(root)
if m and '__init__.py' in files: if m and '__init__.py' in files:
self.load_module('weboob.backends.%s' % m.group(1)) yield m.group(1)
def load(self):
for existing_module_name in self.iter_existing_module_names():
self.load_module('weboob.backends.%s' % existing_module_name)
def load_module(self, name): def load_module(self, name):
try: try: