Move module loader to python logging

This commit is contained in:
Sunil Mohan Adapa 2014-07-05 21:28:19 +02:00
parent 6186be4421
commit 1e4deb7bb9

View File

@ -21,11 +21,13 @@ Discover, load and manage Plinth modules
import django import django
import importlib import importlib
import logging
import os import os
import cfg
import urls import urls
LOGGER = logging.getLogger(__name__)
def load_modules(): def load_modules():
""" """
@ -37,15 +39,14 @@ def load_modules():
for name in os.listdir('modules/enabled'): for name in os.listdir('modules/enabled'):
full_name = 'modules.{module}'.format(module=name) full_name = 'modules.{module}'.format(module=name)
cfg.log.info('Importing {full_name}'.format(full_name=full_name)) LOGGER.info('Importing %s', full_name)
try: try:
module = importlib.import_module(full_name) module = importlib.import_module(full_name)
modules[name] = module modules[name] = module
module_names.append(name) module_names.append(name)
except ImportError as exception: except Exception as exception:
cfg.log.error( LOGGER.exception('Could not import modules/%s: %s',
'Could not import modules/{module}: {exception}' name, exception)
.format(module=name, exception=exception))
_include_module_urls(full_name) _include_module_urls(full_name)
@ -60,10 +61,10 @@ def load_modules():
_insert_modules(module_name, module, remaining_modules, _insert_modules(module_name, module, remaining_modules,
ordered_modules) ordered_modules)
except KeyError: except KeyError:
cfg.log.error('Unsatified dependency for module - %s' % LOGGER.error('Unsatified dependency for module - %s',
(module_name,)) module_name)
cfg.log.debug('Module load order - %s' % ordered_modules) LOGGER.debug('Module load order - %s', ordered_modules)
for module_name in ordered_modules: for module_name in ordered_modules:
_initialize_module(modules[module_name]) _initialize_module(modules[module_name])
@ -87,8 +88,8 @@ def _insert_modules(module_name, module, remaining_modules, ordered_modules):
try: try:
module = remaining_modules.pop(dependency) module = remaining_modules.pop(dependency)
except KeyError: except KeyError:
cfg.log.error('Not found or circular dependency - %s, %s' % LOGGER.error('Not found or circular dependency - %s, %s',
(module_name, dependency)) module_name, dependency)
raise raise
_insert_modules(dependency, module, remaining_modules, ordered_modules) _insert_modules(dependency, module, remaining_modules, ordered_modules)
@ -104,7 +105,7 @@ def _include_module_urls(module_name):
'', django.conf.urls.url( '', django.conf.urls.url(
r'', django.conf.urls.include(url_module))) r'', django.conf.urls.include(url_module)))
except ImportError: except ImportError:
cfg.log.debug('No URLs for {module}'.format(module=module_name)) LOGGER.debug('No URLs for %s', module_name)
def _initialize_module(module): def _initialize_module(module):
@ -112,15 +113,14 @@ def _initialize_module(module):
try: try:
init = module.init init = module.init
except AttributeError: except AttributeError:
cfg.log.debug('No init() for module - {module}' LOGGER.debug('No init() for module - %s', module.__name__)
.format(module=module.__name__))
return return
try: try:
init() init()
except Exception as exception: except Exception as exception:
cfg.log.error('Exception while running init for {module}: {exception}' LOGGER.exception('Exception while running init for %s: %s',
.format(module=module, exception=exception)) module, exception)
def get_template_directories(): def get_template_directories():
@ -132,6 +132,4 @@ def get_template_directories():
for name in os.listdir('modules/enabled'): for name in os.listdir('modules/enabled'):
directories.add(os.path.join('modules', name, 'templates')) directories.add(os.path.join('modules', name, 'templates'))
cfg.log.info('Template directories - %s' % directories)
return directories return directories