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 yaml
import pandas as pd import pandas as pd
from tablegenerator import TableGenerator from tablegenerator import TableGenerator
from markdowngenerator import MarkdownGenerator from markdowngenerator import MarkdownGenerator
from templategenerator import TemplateGenerator from templategenerator import TemplateGenerator
from parser import Parser from converter import Converter
class CourseBuilder: 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('-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('-s','--schema',help="using provided schema")
parser.add_argument('-p','--pagebreak',action="store_true",help="add a pagebreak after each module") 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('-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('--level',type=int,default=1,help="level of header tags")
parser.add_argument('--table-gen',type=str,default=None,help='runs table generator') parser.add_argument('--table-gen',type=str,default=None,help='runs table generator')
@ -50,16 +49,14 @@ class CourseBuilder:
if args.table_gen: if args.table_gen:
tg = TableGenerator() tg = TableGenerator()
tg.generate_table(args.table_gen) tg.generate_table(args.table_gen)
return return
# book mode with predefined setting from a book file # book mode with predefined setting from a book file
if args.book and args.schema: if args.book and args.schema:
generator = Parser() generator = Converter()
with open(args.schema) as sf: with open(args.schema) as sf:
generator.set_schema(yaml.load(sf,Loader=yaml.Loader)) generator.set_schema(yaml.load(sf,Loader=yaml.Loader))
@ -99,6 +96,7 @@ class CourseBuilder:
# get actual fields # get actual fields
actual_fields = [] actual_fields = []
# use a file instead of list
if os.path.isfile(args.fields[0]): if os.path.isfile(args.fields[0]):
with open(args.fields[0]) as ff: with open(args.fields[0]) as ff:
actual_fields = yaml.load(ff,Loader=yaml.Loader)['fields'] actual_fields = yaml.load(ff,Loader=yaml.Loader)['fields']
@ -115,7 +113,7 @@ class CourseBuilder:
for m in args.meta: for m in args.meta:
with open(m) as fm: with open(m) as fm:
generator = Parser() generator = Converter()
generator.set_schema(actual_schema) generator.set_schema(actual_schema)
meta = yaml.load(fm,Loader=yaml.Loader) 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) table_items = generator.process(meta=meta,fields=actual_fields,lang=args.lang)
# TODO - something more processable for Pandas? # TODO - something more processable for Pandas?
# return [ { name: Computergraphik }, keys = { name: Modulname } ] draft = [
{ 'name' : 'Computergrafik' },
{ 'credits' : '5 ECTS' },
]
# get the dataframe # get the dataframe
df = pd.DataFrame(table_items) df = pd.DataFrame(table_items)
@ -140,8 +141,6 @@ class CourseBuilder:
if args.pagebreak: if args.pagebreak:
print('\\pagebreak') print('\\pagebreak')
# MarkdownGenerator.generate(table_items,pagebreak=args.pagebreak,title=args.title,header_level=args.level) # MarkdownGenerator.generate(table_items,pagebreak=args.pagebreak,title=args.title,header_level=args.level)
else: else:

View file

@ -1,6 +1,6 @@
import os,string,sys import string
class Parser: class Converter:
def __init__(self) -> None: def __init__(self) -> None:
self.__schema = None self.__schema = None
@ -32,7 +32,6 @@ class Parser:
def process_str(self,meta,field,lang='de'): def process_str(self,meta,field,lang='de'):
if self.is_translatable(field): if self.is_translatable(field):
return [self.process_label(field,lang),meta[field][lang]] return [self.process_label(field,lang),meta[field][lang]]
else: else:
if not 'value' in meta[field]: if not 'value' in meta[field]:

View file

@ -3,10 +3,14 @@ build_dir := build
target_en := ${build_dir}/table.en.pdf target_en := ${build_dir}/table.en.pdf
target_de := ${build_dir}/table.de.pdf target_de := ${build_dir}/table.de.pdf
targets := ${target_de} ${target_en}
target_flags := --template pandoc-template/eisvogel.latex target_flags := --template pandoc-template/eisvogel.latex
coursebuilder := ../coursebuilder coursebuilder := ../coursebuilder
all: ${targets}
${target_en}: ${target_en}:
@echo "creating English version ..." @echo "creating English version ..."
mkdir -p ${build_dir} mkdir -p ${build_dir}
@ -17,13 +21,13 @@ ${target_de}:
mkdir -p ${build_dir} mkdir -p ${build_dir}
python ${coursebuilder} -s schema.yaml -m mod.cg.yaml -l de -f fields.yaml | pandoc ${target_flags} -o ${target_de} 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: clean:
rm ${target_de} ${target_en} rm -f ${targets}
debug: 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 .PHONY: clean