Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/mistune/plugins/__init__.py: 87%
15 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-01 06:54 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-01 06:54 +0000
1from importlib import import_module
3_plugins = {
4 'speedup': 'mistune.plugins.speedup.speedup',
5 'strikethrough': 'mistune.plugins.formatting.strikethrough',
6 'mark': 'mistune.plugins.formatting.mark',
7 'insert': 'mistune.plugins.formatting.insert',
8 'superscript': 'mistune.plugins.formatting.superscript',
9 'subscript': 'mistune.plugins.formatting.subscript',
10 'footnotes': 'mistune.plugins.footnotes.footnotes',
11 'table': 'mistune.plugins.table.table',
12 'url': 'mistune.plugins.url.url',
13 'abbr': 'mistune.plugins.abbr.abbr',
14 'def_list': 'mistune.plugins.def_list.def_list',
15 'math': 'mistune.plugins.math.math',
16 'ruby': 'mistune.plugins.ruby.ruby',
17 'task_lists': 'mistune.plugins.task_lists.task_lists',
18 'spoiler': 'mistune.plugins.spoiler.spoiler',
19}
20_cached_modules = {}
23def import_plugin(name):
24 if name in _cached_modules:
25 return _cached_modules[name]
27 if callable(name):
28 return name
30 if name in _plugins:
31 module_path, func_name = _plugins[name].rsplit(".", 1)
32 else:
33 module_path, func_name = name.rsplit(".", 1)
35 module = import_module(module_path)
36 plugin = getattr(module, func_name)
37 _cached_modules[name] = plugin
38 return plugin