def load_package_modules(package_name, package_pathes): """ Load (import) all modules from some package (except those starting with _). This is useful if there is some code in the module that runs at import time and registers some code of that module somewhere. Call this from __init__.py of the same package like this: load_package_modules(__name__, __path__) """ for path in package_pathes: for root, dirs, files in os.walk(path): del dirs[:] for fname in files: if fname.startswith('_') or not fname.endswith('.py'): continue module = fname[:-3] module_complete = package_name + '.' + module if module_complete in sys.modules: continue info = imp.find_module(module, [root]) try: try: imp.load_module(module_complete, *info) except Exception as e: import moin.log as logging logger = logging.getLogger(package_name) logger.exception( "Failed to import {0} package module {1}: {2}". format(package_name, module, e)) finally: info[0].close()
from flask import flash from emeraldtree import ElementTree as ET from emeraldtree.html import HTML from moin.i18n import _ from moin.utils.tree import html, moin_page, xlink, xml from moin.utils.mime import Type, type_moin_document from . import default_registry from ._wiki_macro import ConverterMacro from ._util import allowed_uri_scheme, decode_data, normalize_split_text from moin import log logging = log.getLogger(__name__) class NoDupsFlash: """ Issue flash messages for unsupported HTML tags; but do not create duplicate messages. """ def __init__(self): self.messages = set() def log(self, message, category): if message not in self.messages: self.messages.add(message) flash(message, category)