diff options
Diffstat (limited to 'moin_setuptools_loader/__init__.py')
-rw-r--r-- | moin_setuptools_loader/__init__.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/moin_setuptools_loader/__init__.py b/moin_setuptools_loader/__init__.py new file mode 100644 index 0000000..c45e062 --- /dev/null +++ b/moin_setuptools_loader/__init__.py | |||
@@ -0,0 +1,25 @@ | |||
1 | import pkg_resources | ||
2 | from MoinMoin import wikiutil | ||
3 | from MoinMoin.config import multiconfig | ||
4 | |||
5 | |||
6 | class SetuptoolsPluginLoader(multiconfig.DefaultConfig): | ||
7 | |||
8 | _plugin_types = [ | ||
9 | "action", "converter", "events", "filter", "formatter", | ||
10 | "macro", "parser", "theme", "userprefs", "xmlrpc"] | ||
11 | |||
12 | def __init__(self, siteid): | ||
13 | super(SetuptoolsPluginLoader, self).__init__(siteid) | ||
14 | |||
15 | for kind in self._plugin_types: | ||
16 | wikiutil.wikiPlugins(kind, self) | ||
17 | self._load_setuptools_plugins(kind) | ||
18 | |||
19 | def _load_setuptools_plugins(self, kind): | ||
20 | entry_key = "moin.plugins.{}".format(kind) | ||
21 | |||
22 | for point in pkg_resources.iter_entry_points(entry_key): | ||
23 | point.load() | ||
24 | trimmed_name = ".".join(point.module_name.split(".")[:-1]) | ||
25 | self._site_plugin_lists[kind][point.name] = trimmed_name | ||