Coverage for src/midgy/loader.py: 0%
22 statements
« prev ^ index » next coverage.py v6.5.0, created at 2022-10-24 15:45 -0700
« prev ^ index » next coverage.py v6.5.0, created at 2022-10-24 15:45 -0700
1"""run and import markdown files as python"""
2from dataclasses import dataclass, field
4from importnb import Notebook
6from .python import Python
8__all__ = ("Markdown", "run")
11@dataclass
12class Markdown(Notebook):
13 """an importnb extension for markdown documents"""
15 include_doctest: bool = False
16 extensions: tuple = field(default_factory=[".md", ".py.md", ".md.ipynb", ].copy)
17 render_cls = Python
19 def __post_init__(self):
20 self.renderer = self.render_cls(include_doctest=self.include_doctest)
22 def get_data(self, path):
23 if self.path.endswith(".md"):
24 self.source = self.decode()
25 return self.code(self.source)
26 return super(Notebook, self).get_data(path)
28 def code(self, str):
29 return super().code(self.renderer.render("".join(str)))
31 get_source = get_data
34if __name__ == "__main__":
35 from sys import argv
37 Markdown.load_argv(argv[1:])