avoid "parser" name ...

This commit is contained in:
Hartmut Seichter 2024-05-12 21:07:57 +02:00
parent 85abfeb743
commit e9407a6b6e
3 changed files with 19 additions and 17 deletions

View file

@ -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')
@ -50,16 +49,14 @@ class CourseBuilder:
if args.table_gen:
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:

View file

@ -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]:

View file

@ -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