import subprocess import os import shutil from banking_breakdown import types def build_document(report_data: types.ReportData): # Copy files from 'res/' folder os.makedirs(os.path.dirname("build/report.tex"), exist_ok=True) shutil.copyfile("res/report.tex", "build/report.tex") shutil.copyfile("res/.latexmkrc", "build/.latexmkrc") # Write data as csv files report_data.net_income.to_csv('build/net_income.csv', index=False) report_data.category_overview.to_csv('build/category_overview.csv', index=False) report_data.total_value.to_csv('build/total_value.csv', index=False) # Build dockerfile and compile document subprocess.call("docker build . -f res/Dockerfile.alpine" " -t banking-breakdown", shell=True) subprocess.call("docker run --rm -u `id -u`:`id -g`" " -v $(realpath .):/project" " -w /project/build banking-breakdown" " latexmk -pdf report.tex", shell=True)