diff --git a/README.md b/README.md index ec5f847..fd5b767 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # CourseBuilder + Coursebuilder is a preprocessor tool for [pandoc](https://pandoc.org) to generate multi-lingual curricula documentation tables from structured representations as a flatfile database. Data scheme and @@ -9,8 +10,7 @@ actual values are kept in YAML files in order to version them with git. ```sh $> python coursebuilder -usage: [-h] [-m META [META ...]] [-l LANG] [-f FIELDS [FIELDS ...]] [-s SCHEMA] [-p] [-t] [-b BOOK] [--level LEVEL] - [--table-gen TABLE_GEN] +usage: [-h] [-m META [META ...]] [-l LANG] [-f FIELDS [FIELDS ...]] [-s SCHEMA] [-p] [-t] [-b BOOK] versatile curricula generator @@ -26,14 +26,11 @@ options: -p, --pagebreak add a pagebreak after each module -t, --title take first value in list as title -b BOOK, --book BOOK process a whole curriculum book with sections - --level LEVEL level of header tags - --table-gen TABLE_GEN - runs table generator ``` # Author -© Copyright 2020-2024 Hartmut Seichter +(c) Copyright 2020-2023 Hartmut Seichter # Licence diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index d92d24d..2234625 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -78,21 +78,11 @@ class CourseBuilder: else: return [self.process_label(field,lang),enum_val] - def process_num(self,meta,field,lang='de'): + def process_int(self,meta,field,lang='de'): v = meta[field]['value'] t = string.Template(self.get_template(field,lang)) return [self.process_label(field,lang),t.substitute({'value' : v})] - def process_multinum(self,meta,field,lang='de'): - v = meta[field]['value'] - t = string.Template(self.get_template(field,lang)) - if hasattr(v, "__len__"): - vv = [t.substitute({'value' : ev}) for ev in v] - return [self.process_label(field,lang),', '.join(vv)] - else: - return self.process_num(meta=meta,field=field,lang=lang) - - def process_multikey(self,meta,field,lang='de'): """ multikey need to assign a numeric value to a key @@ -119,8 +109,7 @@ class CourseBuilder: match self.__schema[field]['type']: case 'str': table_items.append(self.process_str(meta,field,lang)) case 'enum': table_items.append(self.process_enum(meta,field,lang)) - case ['int', 'num'] : table_items.append(self.process_num(meta,field,lang)) - case 'multinum' : table_items.append(self.process_multinum(meta,field,lang)) + case 'int': table_items.append(self.process_int(meta,field,lang)) case 'multikey': table_items.append(self.process_multikey(meta,field,lang)) mdg = MarkdownGenerator() @@ -165,7 +154,7 @@ def main(): 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') - + # get arguments args = parser.parse_args() diff --git a/test/simple/Makefile b/test/simple/Makefile index 8ea5c11..1c46c26 100644 --- a/test/simple/Makefile +++ b/test/simple/Makefile @@ -9,9 +9,4 @@ table.de.pdf: all: table.en.pdf table.de.pdf clean: - rm -f table.en.pdf table.de.pdf - - -debug: - python ../../coursebuilder -s schema.yaml -m mod.cg.yaml -l de -f fields.yaml - + rm table.en.pdf table.de.pdf \ No newline at end of file diff --git a/test/simple/mod.cg.yaml b/test/simple/mod.cg.yaml index 55d76c4..6a1e04b 100644 --- a/test/simple/mod.cg.yaml +++ b/test/simple/mod.cg.yaml @@ -16,7 +16,7 @@ form-of-instruction: value: { 'lecture': 2, 'exersise': 1 } term: - value: [1, 3] + value: 1 duration: value: 1 diff --git a/test/simple/schema.yaml b/test/simple/schema.yaml index 9a46893..9186a4a 100644 --- a/test/simple/schema.yaml +++ b/test/simple/schema.yaml @@ -181,12 +181,12 @@ workload: # # credits/ECTS # -credits: - type: num +credits: label: { en: "credits and weight of mark", de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote" } + type: int template: de: "${value}CP Gewichtung: ${value}CP von 120CP " en: "${value}CP weight: ${value} / 120 " @@ -229,7 +229,7 @@ term: de: "Semester", en: "term" } - type: multinum + type: int template: de: " ${value}. Semester" en: " ${value}. semester"