blob: d19c695b2d6686f1a41d6c795991d16d28e58179 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import pkg_resources
from MoinMoin import wikiutil
from MoinMoin.config import multiconfig
class SetuptoolsPluginLoader(multiconfig.DefaultConfig):
# TODO: Docs
# TODO: Skip loading if true
setuptools_load_plugins = False
# TODO: Both are empty? Include all
# TODO: Both are non-empty? Error
# TODO: Only include? Load only those plugins
# TODO: Only exclude? Load all plugins except those ones
setuptools_plugins_include = []
setuptools_plugins_exclude = []
# list(p.working_set)[4].get_entry_map().values()[0].values()[1]
# .dist.project_name
# p.get_distribution("foo")
_plugin_types = [
"action", "converter", "events", "filter", "formatter",
"macro", "parser", "theme", "userprefs", "xmlrpc"]
def __init__(self, siteid):
super(SetuptoolsPluginLoader, self).__init__(siteid)
for kind in self._plugin_types:
wikiutil.wikiPlugins(kind, self)
self._load_setuptools_plugins(kind)
def _load_setuptools_plugins(self, kind):
entry_key = "moin.plugins.{}".format(kind)
for point in pkg_resources.iter_entry_points(entry_key):
point.load()
trimmed_name = ".".join(point.module_name.split(".")[:-1])
self._site_plugin_lists[kind][point.name] = trimmed_name
|