diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index 9c88513..f9fc629 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -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 diff --git a/coursebuilder/schema.py b/coursebuilder/schema.py index c03a47f..9dfeda5 100644 --- a/coursebuilder/schema.py +++ b/coursebuilder/schema.py @@ -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() diff --git a/test/Makefile b/test/Makefile index d3a5e27..9fed28a 100644 --- a/test/Makefile +++ b/test/Makefile @@ -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 \ No newline at end of file