Merkuryは、Pythonスクリプトを実行し、静的HTMLまたはマークダウンレポートをコードと生成した出力でレンダリングするコマンドラインユーティリティです。標準の.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
注レポートファイルに生のHTMLチャンク(プロットや画像など)が含まれている場合は、 wkhtmltopdf PDFエンジンを使用する必要があります。
作成されたレポートでは、コードはセクションに分割されます。各セクションは、出力(例: print()
)を印刷するステートメントで終了します。魔法のコメント#TITLE <your_section_title>
を配置することにより、各セクションにタイトルを指定できます。
フォーマットを報告する場合、Pythonスクリプトには、標準<code>
ブロック(デフォルト)、HTML、またはマークダウンの3種類の出力があります。
デフォルトでは、 Merkuryは任意の出力を標準コード印刷として扱い、 <code>
ブロックに入れます。出力が実際にHTMLまたはマークダウンである場合、スクリプトに印刷されたステートメントの後に魔法のコメントを配置することにより、それを示す必要があります。
RAW HTMLを出力する行の後に#HTML
を入力する必要があります。例えば:
print(pandas_df.to_html(border=0))
#HTML
HTMLを手作業で作成することに加えて、HTMLとして出力をフォーマットできるライブラリを使用することに加えて、 Merkuryは一般的なライブラリからプロットをフォーマットするためにユーティリティ関数を提供します。詳細については、ドキュメントのプロットを参照してください。
マークダウンでフォーマットされたテキストをレンダリングすることもできます。印刷されたステートメントの後に魔法のコメント#MARKDOWN
を入れる必要があります。
例えば:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN