neben-brief/generate.py
2023-02-27 13:01:15 +01:00

37 lines
981 B
Python

import argparse
import json
from Cheetah.Template import Template
import importlib
parser = argparse.ArgumentParser(description='LetterGenerator')
parser.add_argument('--input', '-i',
help = 'Input file in JSON format',
required = True)
parser.add_argument('--template', '-t',
help = 'Template file in Cheetah format',
required = True)
parser.add_argument('--output', '-o',
help = 'Output file',
required = True)
parser.add_argument('--preprocessor', '-p',
help = 'Preprocessor module',
required = False)
args = parser.parse_args()
inputFile = args.input
templateFile = args.template
outputFile = args.output
preprocessor = args.preprocessor
with open(inputFile) as f:
inputData = json.load(f)
if preprocessor:
preprocessorMod = importlib.import_module(preprocessor)
inputData = preprocessorMod.perform(inputData)
tmpl = Template(file=templateFile, searchList=[ inputData ])
with open(outputFile, 'w') as f:
f.write(str(tmpl))