Merkury est un utilitaire de ligne de commande pour exécuter des scripts Python et rendre les rapports HTML ou Markdown statiques avec code et sortie produite. Il utilise des fichiers .py
standard comme entrée - tout script valide qui peut être exécuté à partir de la ligne de commande peut également être transformé en rapport.
C'est une alternative légère aux outils tels que Jupyter et Papermill. Bien que ceux-ci aient leurs avantages (et leurs problèmes), lorsque tout ce dont vous avez besoin est de générer un rapport à partir d'un script d'analyse de données, ils pourraient être une exagération. Ce projet est destiné à aborder ce scénario.
Non-Goals du projet:
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.
Il est également possible d'obtenir des rapports PDF avec l'utilisation d'outils de conversion supplémentaires (par exemple, Pandoc). Par exemple:
merkury -o /dev/stdout -f md <your_script> | pandoc --highlight-style=tango -t pdf -o report.pdf
Remarque, dans le cas où votre fichier de rapport contient des morceaux HTML bruts (tels que des parcelles ou des images), vous aurez besoin d'utiliser le moteur PDF WKHTMLTOPDF .
Dans le rapport produit, le code sera divisé en sections. Chaque section se termine par une instruction imprimant une sortie (par exemple, print()
). Vous pouvez donner des titres à chaque section en plaçant le commentaire magique #TITLE <your_section_title>
après la ligne qui produit une sortie.
Lorsqu'il s'agit de signaler le formatage, il existe 3 types de sorties dans un script Python: Block <code>
standard (par défaut), HTML ou Markdown.
Par défaut, Merkury traite toute sortie comme un code standard imprime et le place dans les blocs <code>
. Si votre sortie est en fait HTML ou Markdown, vous devez l'indiquer en plaçant un commentaire magique après l'instruction imprimée dans votre script.
Vous devez mettre un commentaire #HTML
après une ligne qui publie HTML brut. Par exemple:
print(pandas_df.to_html(border=0))
#HTML
En plus d'écrire HTML à la main ou d'utiliser des bibliothèques qui permettent le formatage de sortie sous forme de HTML, Merkury fournit des fonctions utilitaires pour formater des graphiques à partir de bibliothèques communes. Voir le tracé des documents pour plus de détails.
Il est également possible de rendre du texte formaté dans Markdown. Vous devez mettre le commentaire magique #MARKDOWN
après la déclaration d'impression.
Par exemple:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN