Files
Implementations-of-Probabil…/reportUpdating.py
2024-09-02 10:39:15 -04:00

55 lines
1.6 KiB
Python

import subprocess
import csv
import time
def compile_latex(latex_file):
try:
# Run the pdflatex command to compile the LaTeX file
subprocess.run(['pdflatex', latex_file], check=True)
print(f'Successfully compiled {latex_file}')
except subprocess.CalledProcessError as e:
print(f'Error compiling {latex_file}: {e}')
def timesheet2Tex():
with open("timesheet.tex", 'r') as f:
lines = f.readlines()
timesheetStart = findIn(lines, "% OPEN Timesheet")
timesheetStop = findIn(lines, "% CLOSE Timesheet")
timetable = csv2Table("timesheet.csv")
with open("timesheet.tex", 'w') as f:
f.write(''.join(lines[:timesheetStart+1]) + timetable + ''.join(lines[timesheetStop:]))
def csv2Table(inFile):
with open(inFile, 'r') as f:
reader = csv.reader(f)
rows = list(reader)
out = "\\begin{table}[h!]\n\\centering\n"
out += "\\begin{tabular}[t]{|" + " c | c | c | c | p{6cm} |}\n"
out += "\\hline\n"
for row in rows:
# Escape special LaTeX characters
row = [cell.replace('&', '\\&') for cell in row]
out += " & ".join(row) + " \\\\\n"
out += "\\hline\n"
out += "\\end{tabular}\n\\end{table}\n"
return out
def findIn(arr, target):
for i, s in enumerate(arr):
if target in s:
return i
return -1
if __name__ == "__main__":
timesheet2Tex()
compile_latex('timesheet.tex')
# latex makes all kinds of files :(
subprocess.run(['rm -f *.aux *.log *.fdb_latexmk *.fls *.gz'], check=True, shell=True)