Exemple #1
0
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()
Exemple #2
0
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)