aboutsummaryrefslogtreecommitdiff
path: root/moin_setuptools_loader/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'moin_setuptools_loader/__init__.py')
-rw-r--r--moin_setuptools_loader/__init__.py25
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 @@
1import pkg_resources
2from MoinMoin import wikiutil
3from MoinMoin.config import multiconfig
4
5
6class 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