From f0be577119aac5c4c51d30a45972be7746a45b6f Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Thu, 20 Aug 2020 15:06:12 +0200 Subject: [PATCH] Fix: imports --- bopytex/script.py | 79 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/bopytex/script.py b/bopytex/script.py index bcec04c..5dfc097 100644 --- a/bopytex/script.py +++ b/bopytex/script.py @@ -3,7 +3,17 @@ import click -from .bopytex import produce_and_compile +import logging +from pathlib import Path +from .bopytex import subject_metadatas, crazy_feed, pdfjoin, feed, clean, texcompile, setup, activate_printanswers + +formatter = logging.Formatter("%(name)s :: %(levelname)s :: %(message)s") +steam_handler = logging.StreamHandler() +steam_handler.setLevel(logging.DEBUG) +steam_handler.setFormatter(formatter) +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) +logger.addHandler(steam_handler) @click.command() @click.argument( @@ -76,7 +86,72 @@ def new(**options): Feed the template (tpl_...) and then compile it with latex. """ - produce_and_compile(options) + setup() + + logger.debug(f"CI parser gets {options}") + + template = Path(options["template"]).name + directory = Path(options["template"]).parent + metadatas = subject_metadatas(options) + logger.debug(f"Metadata {metadatas}") + + for meta in metadatas: + logger.debug(f"Feeding template toward {meta['texfile']}") + if options["crazy"]: + crazy_feed( + template=Path(meta["directory"]) / meta["template"], + data=meta, + output=meta["texfile"], + force=1, + ) + else: + feed( + template=Path(meta["directory"]) / meta["template"], + data=meta, + output=meta["texfile"], + force=1, + ) + assert(Path(meta["texfile"]).exists()) + logger.debug(f"{meta['texfile']} fed") + + if options["corr"]: + logger.debug(f"Building correction for {meta['texfile']}") + meta.update({ + "corr_texfile": activate_printanswers(meta["texfile"]), + }) + + if not options["no_compile"]: + for prefix in ["", "corr_"]: + key = prefix + "texfile" + try: + meta[key] + except KeyError: + pass + else: + texcompile(meta[key]) + meta.update({ + prefix+'pdffile': meta[key].replace('tex', 'pdf') + }) + + if not options["no_join"]: + for prefix in ["", "corr_"]: + key = prefix + "pdffile" + try: + pdfs = [m[key] for m in metadatas] + except KeyError: + pass + else: + pdfjoin( + pdfs, + template.replace("tpl", prefix+"all").replace(".tex", ".pdf"), + directory, + rm_pdfs=1, + ) + + if not options["dirty"]: + clean(directory) + + # produce_and_compile(options) if __name__ == "__main__":