Merkury es una utilidad de línea de comando para ejecutar scripts de Python y representar informes de HTML o markdown estáticos con código y salida producida. Utiliza archivos .py
estándar como entrada: cualquier script válido que se pueda ejecutar desde la línea de comandos también se puede convertir en un informe.
Es una alternativa liviana a herramientas como Jupyter y Papermill. Si bien estos tienen sus ventajas (y problemas), cuando todo lo que necesita es generar un informe a partir de un script de análisis de datos, pueden ser una exageración. Este proyecto está destinado a abordar ese escenario.
No posees del proyecto:
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.
También es posible obtener informes PDF con el uso de herramientas de conversión adicionales (por ejemplo, pandoc). Por ejemplo:
merkury -o /dev/stdout -f md <your_script> | pandoc --highlight-style=tango -t pdf -o report.pdf
Tenga en cuenta que su archivo de informe contiene fragmentos HTML sin procesar (como tramas o imágenes), necesitará usar el motor PDF WKHTMLTOPDF .
En el informe producido, el código se dividirá en secciones. Cada sección termina con una declaración que imprime alguna salida (por ejemplo, print()
). Puede dar títulos a cada sección colocando comentario mágico #TITLE <your_section_title>
después de la línea que produce salida.
Cuando se trata de formatear por informe, hay 3 tipos de salidas en un script de Python: estándar <code>
bloque (predeterminado), html o markdown.
Por defecto, Merkury trata cualquier salida como la impresión del código estándar y la coloca en bloques <code>
. Si su salida es en realidad HTML o Markdown, debe indicarlo colocando un comentario mágico después de la declaración de impresión en su guión.
Debe poner un comentario #HTML
después de una línea que genera HTML sin procesar. Por ejemplo:
print(pandas_df.to_html(border=0))
#HTML
Además de escribir HTML a mano o usar bibliotecas que permitan formatear la salida como HTML, Merkury proporciona funciones de utilidad para formatear gráficos de bibliotecas comunes. Vea los documentos de trazado para más detalles.
También es posible procesar el texto en Markdown. Debes poner el comentario mágico #MARKDOWN
después de la declaración de impresión.
Por ejemplo:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN