From dea1f01b7d8ad5212c0d4c3efffd775f1e23b758 Mon Sep 17 00:00:00 2001 From: Nitesh Kumar <166297874+niteshg97@users.noreply.github.com> Date: Fri, 19 Jun 2026 12:06:52 +0530 Subject: [PATCH 1/4] Respect WriteTar in Catapult writer --- hls4ml/writer/catapult_writer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/hls4ml/writer/catapult_writer.py b/hls4ml/writer/catapult_writer.py index ba7e511995..5b2289dbd7 100755 --- a/hls4ml/writer/catapult_writer.py +++ b/hls4ml/writer/catapult_writer.py @@ -893,11 +893,13 @@ def write_tar(self, model): model (ModelGraph): the hls4ml model. """ - if not os.path.exists(model.config.get_output_dir() + '.tar.gz'): - with tarfile.open(model.config.get_output_dir() + '.tar.gz', mode='w:gz') as archive: + if model.config.get_writer_config().get('WriteTar', False): + tar_path = model.config.get_output_dir() + '.tar.gz' + if os.path.exists(tar_path): + os.remove(tar_path) + with tarfile.open(tar_path, mode='w:gz') as archive: archive.add(model.config.get_output_dir(), recursive=True) - else: - print('Project .tar.gz archive already exists') + def write_hls(self, model): self.write_output_dir(model) From 7eb17fd2f4161c4ae4c7264a03f0040e57a29ffe Mon Sep 17 00:00:00 2001 From: Nitesh Kumar <166297874+niteshg97@users.noreply.github.com> Date: Fri, 19 Jun 2026 12:13:45 +0530 Subject: [PATCH 2/4] Add catapult WriteTar regression test --- test/pytest/test_catapult_writer.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/pytest/test_catapult_writer.py diff --git a/test/pytest/test_catapult_writer.py b/test/pytest/test_catapult_writer.py new file mode 100644 index 0000000000..ff84911975 --- /dev/null +++ b/test/pytest/test_catapult_writer.py @@ -0,0 +1,32 @@ +from pathlib import Path +import pytest + +from hls4ml.writer.catapult_writer import CatapultWriter + + +class DummyConfig: + def __init__(self, output_dir, write_tar): + self.output_dir = str(output_dir) + self.writer_config = {'WriteTar': write_tar} + + def get_output_dir(self): + return self.output_dir + + def get_writer_config(self): + return self.writer_config + + +class DummyModel: + def __init__(self, output_dir, write_tar): + self.config = DummyConfig(output_dir, write_tar) + + +@pytest.mark.parametrize('write_tar', [True, False]) +def test_catapult_write_tar_respects_writer_config(tmp_path, write_tar): + output_dir = tmp_path / 'myproject' + output_dir.mkdir() + (output_dir / 'marker.txt').write_text('marker') + + CatapultWriter().write_tar(DummyModel(output_dir, write_tar)) + + assert Path(f'{output_dir}.tar.gz').exists() == write_tar From f29b65c9f6d655fb5ce5c087edd75ffa46c20d1b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 07:35:06 +0000 Subject: [PATCH 3/4] [pre-commit.ci] auto fixes from pre-commit hooks --- hls4ml/writer/catapult_writer.py | 2 +- test/pytest/test_catapult_writer.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hls4ml/writer/catapult_writer.py b/hls4ml/writer/catapult_writer.py index 5b2289dbd7..03a7c2eac5 100755 --- a/hls4ml/writer/catapult_writer.py +++ b/hls4ml/writer/catapult_writer.py @@ -899,7 +899,7 @@ def write_tar(self, model): os.remove(tar_path) with tarfile.open(tar_path, mode='w:gz') as archive: archive.add(model.config.get_output_dir(), recursive=True) - + def write_hls(self, model): self.write_output_dir(model) diff --git a/test/pytest/test_catapult_writer.py b/test/pytest/test_catapult_writer.py index ff84911975..cfd6e84b93 100644 --- a/test/pytest/test_catapult_writer.py +++ b/test/pytest/test_catapult_writer.py @@ -1,4 +1,5 @@ from pathlib import Path + import pytest from hls4ml.writer.catapult_writer import CatapultWriter From 31baacfced71ad6a742a3f66ed9b040bf92f7228 Mon Sep 17 00:00:00 2001 From: Nitesh Kumar <166297874+niteshg97@users.noreply.github.com> Date: Fri, 19 Jun 2026 13:24:37 +0530 Subject: [PATCH 4/4] Fix indentation in catapult_writer.py --- hls4ml/writer/catapult_writer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hls4ml/writer/catapult_writer.py b/hls4ml/writer/catapult_writer.py index 03a7c2eac5..86181bada0 100755 --- a/hls4ml/writer/catapult_writer.py +++ b/hls4ml/writer/catapult_writer.py @@ -893,14 +893,13 @@ def write_tar(self, model): model (ModelGraph): the hls4ml model. """ - if model.config.get_writer_config().get('WriteTar', False): + if model.config.get_writer_config().get('WriteTar', False): tar_path = model.config.get_output_dir() + '.tar.gz' if os.path.exists(tar_path): os.remove(tar_path) with tarfile.open(tar_path, mode='w:gz') as archive: archive.add(model.config.get_output_dir(), recursive=True) - def write_hls(self, model): self.write_output_dir(model) self.write_project_cpp(model)