Coverage for src/midgy/run.py: 0%
22 statements
« prev ^ index » next coverage.py v6.4.4, created at 2022-10-04 10:04 -0700
« prev ^ index » next coverage.py v6.4.4, created at 2022-10-04 10:04 -0700
1"""run and import markdown files as python"""
2from dataclasses import dataclass
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 = ".py.md", ".md", ".md.ipynb"
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:])