Merkury هي أداة سطر الأوامر لتشغيل البرامج النصية Python وتقديم تقارير HTML أو Markdown ثابتة مع الكود والإخراج المنتجة. يستخدم ملفات .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.
من الممكن أيضًا الحصول على تقارير PDF مع استخدام أدوات التحويل الإضافية (على سبيل المثال ، Pandoc). على سبيل المثال:
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>
بعد السطر الذي ينتج الإخراج.
عندما يتعلق الأمر بالإبلاغ عن التنسيق ، هناك 3 أنواع من المخرجات في برنامج نصي Python: Block <code>
القياسي (الافتراضي) أو HTML أو Markdown.
بشكل افتراضي ، يعامل Merkury أي إخراج كطبع رمز قياسي ويضعه في <code>
كتل. إذا كان الإخراج الخاص بك هو HTML أو Markdown فعليًا ، فأنت بحاجة إلى الإشارة إلى ذلك من خلال وضع تعليق سحري بعد بيان الطباعة في البرنامج النصي الخاص بك.
تحتاج إلى وضع تعليق #HTML
بعد خط يخرج HTML الخام. على سبيل المثال:
print(pandas_df.to_html(border=0))
#HTML
بالإضافة إلى كتابة HTML باليد أو باستخدام المكتبات التي تسمح بتنسيق الإخراج كـ HTML ، توفر Merkury وظائف فائدة لتنسيق المؤامرات من المكتبات المشتركة. انظر تخطيط المستندات للحصول على التفاصيل.
من الممكن أيضًا جعل النص منسقًا في تخفيض الطلب. تحتاج إلى وضع التعليق السحري #MARKDOWN
بعد بيان الطباعة.
على سبيل المثال:
print("""
# I'm a markdown header
List:
* l1
* l2
""")
#MARKDOWN