exasim-project / OBR

A runner for OpenFOAM benchmarks
BSD 3-Clause "New" or "Revised" License
3 stars 1 forks source link

Missing warning when running "obr init" with already existing workspace #201

Closed JakubTrzcskni closed 5 months ago

JakubTrzcskni commented 5 months ago

Obr doesn't differentiate if the existing workspace corresponds to current or old config files. Undefined behaviour if run on top of a workspace generated with old (/different) config. Can result in e.g.: [jtrzcinski@nla-gpu2 LidDrivenCavity3D]$ obr init -g -c assets/scaling.yaml OBR: warning LidDrivenCavityS not defined OBR: warning OBR_HUGE_CASES not defined Traceback (most recent call last): File "/home/jtrzcinski/.local/bin/obr", line 8, in <module> sys.exit(main()) File "/home/jtrzcinski/OBR/src/obr/cli.py", line 822, in main cli(obj={}) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) File "/home/jtrzcinski/OBR/src/obr/cli.py", line 66, in wrapper return func(*args, **kwargs) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/click/decorators.py", line 33, in new_func return f(get_current_context(), *args, **kwargs) File "/home/jtrzcinski/OBR/src/obr/cli.py", line 363, in init create_tree(project, config, kwargs) File "/home/jtrzcinski/OBR/src/obr/create_tree.py", line 330, in create_tree generate_view( File "/home/jtrzcinski/OBR/src/obr/create_tree.py", line 101, in generate_view project.find_jobs(filter={"has_child": False}).export_to( File "/home/jtrzcinski/.local/lib/python3.9/site-packages/signac/project.py", line 1935, in export_to return dict( File "/home/jtrzcinski/.local/lib/python3.9/site-packages/signac/import_export.py", line 507, in export_jobs yield from export_to_directory( File "/home/jtrzcinski/.local/lib/python3.9/site-packages/signac/import_export.py", line 343, in _export_jobs _check_path_function_unique(jobs, path_spec=path, path_function=path_function) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/signac/import_export.py", line 174, in _check_path_function_unique job_paths = Counter(path_function(job) for job in jobs) File "/usr/lib64/python3.9/collections/__init__.py", line 593, in __init__ self.update(iterable, **kwds) File "/usr/lib64/python3.9/collections/__init__.py", line 679, in update _count_elements(self, iterable) File "/home/jtrzcinski/.local/lib/python3.9/site-packages/signac/import_export.py", line 174, in <genexpr> job_paths = Counter(path_function(job) for job in jobs) File "/home/jtrzcinski/OBR/src/obr/create_tree.py", line 103, in <lambda> path=lambda job: "view/" + id_path_mapping[job.id], KeyError: '32203577379a765248f12a034b55bec4'