merkury
v0.10
Merkury是运行Python脚本并用代码和产生输出的静态HTML或Markdown报告的命令行实用程序。它使用标准.py
文件作为输入 - 任何可以从命令行运行的有效脚本,也可以将其变成报告。
这是Jupyter和Papermill等工具的轻巧替代品。尽管这些都具有其优势(和问题),但是当您需要的一切都是从数据分析脚本生成报告时,它们可能是过度杀伤。该项目旨在解决该方案。
该项目的非目标:
pip3 install merkury
$ merkury -h
merkury
Usage:
merkury [options] <script>
Options:
-h --help Show this screen.
-o <file>, --output <file> Specify report file (if missing, <script_name>_<date>).
-f <format>, --format <format> Specify report format: html (default), md.
-a <author>, --author <author> Specify author (if missing, user name).
-t <title>, --title <title> Specify report title (if missing, script file name)
-c, --toc Generate Table of Contents
-v, --version Show version and exit.
还可以使用其他转换工具(例如Pandoc)获得PDF报告。例如:
merkury -o /dev/stdout -f md <your_script> | pandoc --highlight-style=tango -t pdf -o report.pdf
注意,如果您的报告文件包含RAW HTML块(例如图或图像),则需要使用WKHTMLTOPDF PDF引擎。
在生产的报告中,代码将分为部分。每个部分都以一个语句打印一些输出(例如, print()
)。您可以通过放置魔术评论#TITLE <your_section_title>
在产生输出的行之后给每个部分提供标题。
在报告格式时,Python脚本中有3种输出类型:标准<code>
block(默认),HTML或Markdown。
默认情况下,默克里将任何输出视为标准代码打印,并将其放入<code>
块中。如果您的输出实际上是HTML或Markdown,则需要通过在脚本中打印语句后将魔术注释来指出。
您需要在输出RAW HTML的行之后输入评论#HTML
。例如:
print(pandas_df.to_html(border=0))
#HTML
除了手工编写HTML或使用允许格式输出为HTML的库外, Merkury还提供了实用程序功能,以从普通库中格式化图。有关详细信息,请参见绘图文档。
也可以在Markdown中渲染格式的文本。您需要在打印语句之后放置魔术评论#MARKDOWN
。
例如:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN