bring back templating

This commit is contained in:
Hartmut Seichter 2024-05-28 08:03:52 +02:00
parent c64b2c2044
commit 4ed9804405
3 changed files with 25 additions and 2 deletions

View file

@ -14,12 +14,14 @@ from argparse import ArgumentParser
import os,sys
import yaml
import pandas as pd
from string import Template
from tablegenerator import TableGenerator
from markdowngenerator import MarkdownGenerator
from templategenerator import TemplateGenerator
from schema import Schema
class CourseBuilder:
@staticmethod
@ -107,8 +109,24 @@ class CourseBuilder:
# print(df_q.head())
# set value transforms
if args.query_template:
ww = 'written'
#df_q['form-of-exam'] = 'Schriftlich' if df_q.loc[:,'form-of-exam'] == 'written' else 'was anderes'
# mm = Template("{'written':'S','oral':'mündlich'}[${v}]")?
# print(mm.format(v=mm))
# set labels
if args.query_labels:
df_q.columns = args.query_labels
q_as_md = df_q.to_markdown(tablefmt='grid',index=False)
print(q_as_md)
# # lets get crazy to create a summary table!
@ -136,6 +154,8 @@ class CourseBuilder:
parser.add_argument('-qs','--query-sort',type=str,default=None,help="sort query with a min/max over a column like min:credits")
parser.add_argument('-qc','--query-compound',type=str,default=None,help="create a compound from a column with multiple values/dictionaries in cells")
parser.add_argument('-qf','--query-filter',type=str,default=[],action="extend", nargs="+",help="filter final list of columns for output")
parser.add_argument('-ql','--query-labels',type=str,default=[],action="extend", nargs="+",help="new labels for query like")
parser.add_argument('-qt','--query-template',type=str,default=[],action="extend", nargs="+",help="templates for values in the form of {value}")
# create pagebreaks

View file

@ -5,6 +5,9 @@ class Schema:
def __init__(self,schema) -> None:
self.__schema = schema
def __getitem__(self, field):
return self.__schema[field]
def keys(self):
return self.__schema.keys()

View file

@ -33,9 +33,9 @@ debug:
# | pandoc ${target_flags} -V lang:de -o ${target_de}
debug-query:
python ${coursebuilder} -s schema.yaml -m mod.cg.yaml mod.interactsys.yaml -q "kind=='compulsory'" -qs min:credits -qc form-of-instruction -qf name id credits
python ${coursebuilder} -s schema.yaml -m mod.cg.yaml mod.interactsys.yaml -q "kind=='compulsory'" -qs min:credits -qc form-of-instruction -qf name credits form-of-exam -ql Modulname Kreditpunkte Prüfungsart -qt quatsch
debug-query-book:
python ${coursebuilder} -s schema.yaml -b book.yaml -q "kind=='compulsory'" -qs min:credits -qc form-of-instruction -qf name id credits
python ${coursebuilder} -s schema.yaml -b book.yaml -q "kind=='compulsory'" -qs min:credits -qc form-of-instruction -qf name credits form-of-instruction -ql Modulname Kürzel Kreditpunkte
.PHONY: clean