From 710928869df4db046d26977323a283fd00d0d8d3 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand Date: Sun, 16 Apr 2017 16:58:36 +0300 Subject: [PATCH] Overrides test in feed --- pytex/__init__.py | 1 + pytex/pytex.py | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pytex/__init__.py b/pytex/__init__.py index e8cb0c0..8531817 100644 --- a/pytex/__init__.py +++ b/pytex/__init__.py @@ -2,6 +2,7 @@ # encoding: utf-8 from .texenv import texenv +from .pytex import * # ----------------------------- # Reglages pour 'vim' diff --git a/pytex/pytex.py b/pytex/pytex.py index 691eb39..93759a0 100644 --- a/pytex/pytex.py +++ b/pytex/pytex.py @@ -28,25 +28,33 @@ def update_export_dict(new_dict): EXPORT_DICT.update(new_dict) -def feed(template, data, output, force=0): +def feed(template, data, output="", force=0): """ Feed template with data to output :param template: jinja2 template with textenv environment :param data: Data dictionnary :param output: name of the output file + (by default: tpl is replaced by a 2 digits number) + :param force: Override is the output already exists """ logger.info(f"Getting template {template}") tpl = texenv.get_template(template) - output_p = Path(output) + if not output: + num = 1 + output_p = Path(template).replace('tpl', f'{num:02d}') + while output.exists() or not force: + logger.debug(f"{output_p} exists. Try next one") + num += 1 + output_p = Path(template).replace('tpl', f'{num:02d}') + elif not force: + logger.error(f"{output} exists. Use force=1 do override it") + raise ValueError(f"{output} exists. Use force=1 do override it") + output_dir = output_p.dirname() if not output_dir.exists(): output_dir.mkdir() - if output_p.exists() and not force: - logger.error(f"{output} exists. Use force=1 do override it") - raise ValueError(f"{output} exists. Use force=1 do override it") - with open(output, "w") as output_f: output_f.write(tpl.render(**EXPORT_DICT, **data)) logger.info(f"{template} has been rendered to {output}.")