From cbaaffc7c2be8e2988cdd0442bafe121bccaeaf7 Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Thu, 27 Mar 2025 12:23:21 +0100 Subject: [PATCH] enable editable installs --- cmake/ManageCodegenVenv.py | 9 ++++----- cmake/WalberlaCodegen.cmake | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/ManageCodegenVenv.py b/cmake/ManageCodegenVenv.py index 33301ac..39701fc 100644 --- a/cmake/ManageCodegenVenv.py +++ b/cmake/ManageCodegenVenv.py @@ -18,7 +18,7 @@ class VenvState: main_requirements_file: str | None = None initialized: bool = False - user_requirements: list[str] = field(default_factory=list) + user_requirements: list[list[str]] = field(default_factory=list) user_requirements_hash: str | None = None @property @@ -95,8 +95,7 @@ def action_require(args): if not state.initialized: raise RuntimeError("Virtual environment is not initialized.") - for req in args.requirements: - state.user_requirements.append(req) + state.user_requirements.append(list(args.requirements)) def action_populate(args): @@ -105,7 +104,7 @@ def action_populate(args): with VenvState.lock(statefile) as state: h = hashlib.sha256() for req in state.user_requirements: - h.update(bytes(req, encoding="utf8")) + h.update(bytes(";".join(str(r) for r in req), encoding="utf8")) digest = h.hexdigest() if digest != state.user_requirements_hash: @@ -119,7 +118,7 @@ def action_populate(args): pip_args = [str(state.venv_python), "-m", "pip", "install"] for req in state.user_requirements: - install_args = pip_args.copy() + [req] + install_args = pip_args.copy() + req subprocess.run(install_args).check_returncode() state.user_requirements_hash = digest diff --git a/cmake/WalberlaCodegen.cmake b/cmake/WalberlaCodegen.cmake index ceafb3e..595f867 100644 --- a/cmake/WalberlaCodegen.cmake +++ b/cmake/WalberlaCodegen.cmake @@ -120,6 +120,7 @@ function(walberla_codegen_venv_require) COMMAND $CACHE{_WALBERLA_CODEGEN_VENV_INVOKE_MANAGER} require + -- ${ARGV} RESULT_VARIABLE _lastResult ) -- GitLab