Merkury - это утилита командной строки для запуска сценариев Python и отчетов о статическом HTML или Marchdown с кодом и созданным выводом. Он использует стандартные файлы .py
в качестве ввода - любой допустимый скрипт, который можно запустить из командной строки, также может быть превращен в отчет.
Это легкая альтернатива таким инструментам, как Юпитер и 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.
Также можно получить отчеты PDF с использованием дополнительных инструментов конверсии (например, Pandoc). Например:
merkury -o /dev/stdout -f md <your_script> | pandoc --highlight-style=tango -t pdf -o report.pdf
Примечание, если ваш файл отчета содержит необработанные HTML -куски (например, графики или изображения), вам понадобится использовать двигатель WKHTMLTOPDF PDF.
В произведении, код будет разбит на разделы. Каждый раздел заканчивается оператором, печатающим некоторые выводы (например, print()
). Вы можете дать заголовки в каждом разделе, разместив Magic Comment #TITLE <your_section_title>
после строки, которая производит вывод.
Когда речь заходит о форматировании отчета, в скрипте Python есть 3 типа выходов: стандартный <code>
block (по умолчанию), HTML или Markdown.
По умолчанию Merkury рассматривает любой вывод как стандартный код печати и помещает его в блоки <code>
. Если ваш вывод на самом деле является HTML или Markdown, вам необходимо указать, что, поместив магический комментарий после печати в вашем сценарии.
Вам нужно поместить комментарий #HTML
после линии, которая выводит необработанные HTML. Например:
print(pandas_df.to_html(border=0))
#HTML
В дополнение к написанию HTML вручную или использованию библиотек, которые позволяют форматировать вывод в качестве HTML, Merkury предоставляет коммунальные функции для форматирования графиков из общих библиотек. Смотрите заговорку документов для деталей.
Также возможно отображать текст, отформатированный в Markdown. Вам нужно поместить Magic Comment #MARKDOWN
после печати.
Например:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN