O Merkury é um utilitário de linha de comando para executar scripts Python e renderizar relatórios estáticos HTML ou Markdown com código e saída produzida. Ele usa arquivos .py
padrão como entrada - qualquer script válido que possa ser executado na linha de comando também pode ser transformado em um relatório.
É uma alternativa leve a ferramentas como Jupyter e Papamill. Embora estes tenham suas vantagens (e problemas), quando tudo o que você precisa é gerar um relatório a partir de um script de análise de dados, eles podem ser um exagero. Este projeto deve abordar esse cenário.
Não Goals of the Project:
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.
Também é possível obter relatórios em PDF com o uso de ferramentas de conversão adicionais (por exemplo, pandoc). Por exemplo:
merkury -o /dev/stdout -f md <your_script> | pandoc --highlight-style=tango -t pdf -o report.pdf
Observe que, caso seu arquivo de relatório contenha pedaços HTML em bruto (como gráficos ou imagens), você precisará usar o mecanismo pdf wkhtmltopdf .
No relatório produzido, o código será dividido em seções. Cada seção termina com uma instrução imprimindo alguma saída (por exemplo, print()
). Você pode dar títulos a cada seção colocando comentários mágicos #TITLE <your_section_title>
após a linha que produz saída.
Quando se trata de reportar formatação, existem 3 tipos de saídas em um script python: bloco padrão <code>
(padrão), html ou markdown.
Por padrão, Merkury trata qualquer saída como impressão de código padrão e a coloca em blocos <code>
. Se sua saída for na verdade HTML ou Markdown, você precisará indicar que colocando um comentário mágico após a instrução de impressão em seu script.
Você precisa colocar um comentário #HTML
após uma linha que gera html bruto. Por exemplo:
print(pandas_df.to_html(border=0))
#HTML
Além de escrever HTML manualmente ou usar bibliotecas que permitem a formatação de saída como HTML, o Merkury fornece funções de utilidade para formatar gráficos de bibliotecas comuns. Consulte a plotagem de documentos para obter detalhes.
Também é possível renderizar o texto formatado em Markdown. Você precisa colocar o comentário mágico #MARKDOWN
após a instrução impressa.
Por exemplo:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN