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

1from importlib import import_module 

2 

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 = {} 

21 

22 

23def import_plugin(name): 

24 if name in _cached_modules: 

25 return _cached_modules[name] 

26 

27 if callable(name): 

28 return name 

29 

30 if name in _plugins: 

31 module_path, func_name = _plugins[name].rsplit(".", 1) 

32 else: 

33 module_path, func_name = name.rsplit(".", 1) 

34 

35 module = import_module(module_path) 

36 plugin = getattr(module, func_name) 

37 _cached_modules[name] = plugin 

38 return plugin