avoid "parser" name ...
This commit is contained in:
parent
85abfeb743
commit
e9407a6b6e
3 changed files with 19 additions and 17 deletions
|
@ -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:
|
||||||
|
|
|
@ -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]:
|
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue