Искам да напиша скрипт, който генерира отчети за всеки екип в моето звено, където всеки отчет използва един и същ шаблон, но където числата, специфични за всеки екип, се използват за всеки отчет. Докладът трябва да бъде във формат като .pdf, който непрограмистите да знаят как да отварят и четат. Това е в много отношения подобно на rmarkdown за R, но отчетите, които искам да генерирам, се основават на данни от код, който вече е написан на python.
Решението, което търся, не се нуждае от директно експортиране в pdf. Може да експортира в markdown и тогава знам как да конвертирам. Не се нуждая от по-елегантно форматиране от това, което предлага markdown. Не е необходимо да е маркдаун, но знам как да направя всичко останало в маркдаун, само ако намеря начин за динамично попълване на числа и текст в шаблон за маркдаун от код на Python.
Това, от което се нуждая, е нещо, което е подобно на кодовия блок по-долу, но в по-голям мащаб и вместо да отпечатва изход на екрана, това ще бъде запазено във файл (.md или .pdf), който след това може да бъде споделен с всеки екип.
user = {'name':'John Doe', 'email':'[email protected]'}
print('Name is {}, and email is {}'.format(user["name"], user["email"]))
Така че желаната функционалност, силно повлияна от предишния ми опит с използване на rmarkdown, ще изглежда нещо като кодовия блок по-долу, където шаблонът е низ или файл, прочетен като низ, с контейнери, които ще бъдат попълнени от променливи (или Dicts или обекти) от кода на python. След това резултатът може да бъде запазен и споделен с екипите.
user = {'name':'John Doe', 'email':'[email protected]'}
template = 'Name is `user["name"]`, and email is `user["email"]`'
output = render(template, user)
Когато се опитвах да намеря еквивалент на rmarkdown в python, открих много указатели към Jupyter Notebook, с които съм запознат и много ми харесват, но не е това, което търся, тъй като целта не е да споделям кода , само изобразен изход.