Merge massage scripts (for templating), prettify HTML

This commit is contained in:
Aarni Koskela
2022-10-10 12:31:20 +03:00
parent 335cf15064
commit aa060b10a4
8 changed files with 144 additions and 106 deletions

View File

@@ -1,19 +0,0 @@
from pulkka.config import OUT_DIR
from pulkka.data_ingest import read_data
def main():
df = read_data()
df.to_html(OUT_DIR / "data.html", index=False, na_rep="")
df.to_csv(OUT_DIR / "data.csv", index=False)
df.to_excel(OUT_DIR / "data.xlsx", index=False)
df.to_json(
OUT_DIR / "data.json",
orient="records",
date_format="iso",
force_ascii=False,
)
if __name__ == "__main__":
main()

65
pulkka/massage_outputs.py Normal file
View File

@@ -0,0 +1,65 @@
import datetime
import glob
import io
import os
import jinja2
import numpy
import pandas
from pulkka.config import OUT_DIR, YEAR
from pulkka.data_ingest import read_data
TEMPLATE_DIR = os.path.realpath("./template")
def write_massaged_files(env, df):
with open(OUT_DIR / 'data.html', 'w') as f:
with io.StringIO() as s:
df.to_html(s, index=False, na_rep="", border=0)
table_html = s.getvalue()
f.write(env.get_template('_table.html').render(table_html=table_html, body_class="table-body"))
df.to_csv(OUT_DIR / "data.csv", index=False)
df.to_excel(OUT_DIR / "data.xlsx", index=False)
df.to_json(
OUT_DIR / "data.json",
orient="records",
date_format="iso",
force_ascii=False,
)
print("Wrote data files")
def render_statics(env):
for filename in glob.glob(os.path.join(TEMPLATE_DIR, "*.html")):
basename = os.path.relpath(filename, TEMPLATE_DIR)
if basename.startswith("_"):
continue
out_filename = OUT_DIR / basename
with open(filename, "r") as inf:
tpl: jinja2.Template = env.from_string(inf.read())
content = tpl.render(body_class="static-body")
with open(out_filename, "w") as outf:
outf.write(content)
print(filename, "=>", out_filename)
def main():
df = read_data()
env = jinja2.Environment(
autoescape=True,
loader=jinja2.FileSystemLoader(TEMPLATE_DIR),
)
env.globals.update({
"date": datetime.datetime.utcnow(),
"pd": pandas,
"np": numpy,
"df": df,
"year": YEAR,
})
render_statics(env)
write_massaged_files(env, df)
if __name__ == "__main__":
main()

View File

@@ -1,35 +0,0 @@
import datetime
import glob
import os
import jinja2
import numpy
import pandas
from pulkka.config import OUT_DIR, YEAR
from pulkka.data_ingest import read_data
def main():
env = jinja2.Environment(
autoescape=True,
)
data = {
"date": datetime.datetime.utcnow(),
"pd": pandas,
"np": numpy,
"df": read_data(),
"year": YEAR,
}
for filename in glob.glob("template/*"):
out_filename = OUT_DIR / os.path.relpath(filename, "template")
with open(filename, "r") as inf:
tpl: jinja2.Template = env.from_string(inf.read())
content = tpl.render(data)
with open(out_filename, "w") as outf:
outf.write(content)
print(filename, "=>", out_filename)
if __name__ == "__main__":
main()