From e9407a6b6e55907750dee4d7d5c3c8d7cbdc1d66 Mon Sep 17 00:00:00 2001 From: Hartmut Seichter Date: Sun, 12 May 2024 21:07:57 +0200 Subject: [PATCH] avoid "parser" name ... --- coursebuilder/__main__.py | 21 ++++++++++----------- coursebuilder/{parser.py => converter.py} | 5 ++--- test/Makefile | 10 +++++++--- 3 files changed, 19 insertions(+), 17 deletions(-) rename coursebuilder/{parser.py => converter.py} (98%) diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index 1c55f5d..5f23d02 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -16,11 +16,10 @@ import os,sys import yaml import pandas as pd - from tablegenerator import TableGenerator from markdowngenerator import MarkdownGenerator from templategenerator import TemplateGenerator -from parser import Parser +from converter import Converter class CourseBuilder: @@ -35,7 +34,7 @@ class CourseBuilder: parser.add_argument('-f','--fields',help="Fields to be used, the table will be build accordingly",action="extend", nargs="+", type=str) parser.add_argument('-s','--schema',help="using provided schema") parser.add_argument('-p','--pagebreak',action="store_true",help="add a pagebreak after each module") - parser.add_argument('--title',type=str,default=None,help="template for title") + parser.add_argument('--title',type=str,default=None,help="template for title - use curly brackets (i.e. {}) to mark where the title string is inserted") parser.add_argument('-b','--book',type=str,help="process a whole curriculum book with sections") parser.add_argument('--level',type=int,default=1,help="level of header tags") parser.add_argument('--table-gen',type=str,default=None,help='runs table generator') @@ -49,17 +48,15 @@ class CourseBuilder: if args.table_gen: - tg = TableGenerator() - + tg = TableGenerator() tg.generate_table(args.table_gen) return - # book mode with predefined setting from a book file if args.book and args.schema: - generator = Parser() + generator = Converter() with open(args.schema) as sf: generator.set_schema(yaml.load(sf,Loader=yaml.Loader)) @@ -99,6 +96,7 @@ class CourseBuilder: # get actual fields actual_fields = [] + # use a file instead of list if os.path.isfile(args.fields[0]): with open(args.fields[0]) as ff: actual_fields = yaml.load(ff,Loader=yaml.Loader)['fields'] @@ -115,7 +113,7 @@ class CourseBuilder: for m in args.meta: with open(m) as fm: - generator = Parser() + generator = Converter() generator.set_schema(actual_schema) meta = yaml.load(fm,Loader=yaml.Loader) @@ -123,7 +121,10 @@ class CourseBuilder: table_items = generator.process(meta=meta,fields=actual_fields,lang=args.lang) # TODO - something more processable for Pandas? - # return [ { name: Computergraphik }, keys = { name: Modulname } ] + draft = [ + { 'name' : 'Computergrafik' }, + { 'credits' : '5 ECTS' }, + ] # get the dataframe df = pd.DataFrame(table_items) @@ -140,8 +141,6 @@ class CourseBuilder: if args.pagebreak: print('\\pagebreak') - - # MarkdownGenerator.generate(table_items,pagebreak=args.pagebreak,title=args.title,header_level=args.level) else: diff --git a/coursebuilder/parser.py b/coursebuilder/converter.py similarity index 98% rename from coursebuilder/parser.py rename to coursebuilder/converter.py index 2b59e11..668dab8 100644 --- a/coursebuilder/parser.py +++ b/coursebuilder/converter.py @@ -1,6 +1,6 @@ -import os,string,sys +import string -class Parser: +class Converter: def __init__(self) -> None: self.__schema = None @@ -32,7 +32,6 @@ class Parser: def process_str(self,meta,field,lang='de'): if self.is_translatable(field): - return [self.process_label(field,lang),meta[field][lang]] else: if not 'value' in meta[field]: diff --git a/test/Makefile b/test/Makefile index c83469e..cc6f0ff 100644 --- a/test/Makefile +++ b/test/Makefile @@ -3,10 +3,14 @@ build_dir := build target_en := ${build_dir}/table.en.pdf target_de := ${build_dir}/table.de.pdf +targets := ${target_de} ${target_en} + target_flags := --template pandoc-template/eisvogel.latex coursebuilder := ../coursebuilder +all: ${targets} + ${target_en}: @echo "creating English version ..." mkdir -p ${build_dir} @@ -17,13 +21,13 @@ ${target_de}: mkdir -p ${build_dir} python ${coursebuilder} -s schema.yaml -m mod.cg.yaml -l de -f fields.yaml | pandoc ${target_flags} -o ${target_de} -all: ${target_de} ${target_en} clean: - rm ${target_de} ${target_en} + rm -f ${targets} debug: - python ${coursebuilder} -s schema.yaml -m mod.cg.yaml mod.interactsys.yaml mod.test.yaml -p --title "## {}" -l de -f name credits goal content | pandoc ${target_flags} -V lang:de -o ${target_de} + python ${coursebuilder} -s schema.yaml -m mod.cg.yaml mod.interactsys.yaml mod.test.yaml -p --title "## {}" -l de -f name credits goal content + # | pandoc ${target_flags} -V lang:de -o ${target_de} .PHONY: clean \ No newline at end of file