From 3d6354871db8486d8410b6eb4373246699fa6be6 Mon Sep 17 00:00:00 2001 From: Jan-Petter Gundersen Date: Mon, 27 Apr 2026 17:36:30 +0200 Subject: [PATCH] Add penv as uv venv --- scripts/extra_script.py | 11 ++++++++--- scripts/src/components/Types.py | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/extra_script.py b/scripts/extra_script.py index ad4430d6..037d1459 100644 --- a/scripts/extra_script.py +++ b/scripts/extra_script.py @@ -1,3 +1,4 @@ +import os import pathlib import re import subprocess @@ -18,9 +19,15 @@ def main() -> None: ]: return + Import("env") + env: Environment = typing.cast(Environment, globals()["env"]) + + uv_env = os.environ.copy() + uv_env["VIRTUAL_ENV"] = os.path.join(env.subst("$PROJECT_CORE_DIR"), "penv") uv = subprocess.run( [sys.executable, "-m", "uv", "sync", "--active", "--inexact", "--only-group", "scripts"], stderr=subprocess.DEVNULL, + env=uv_env, ) if uv.returncode: match = re.search(r'"(uv==\d+\.\d+\.\d+)"', pathlib.Path("pyproject.toml").read_text()) @@ -31,10 +38,8 @@ def main() -> None: if pip.returncode: subprocess.run([sys.executable, "-m", "ensurepip"], check=True) subprocess.run(pip.args, check=True) - subprocess.run(uv.args, check=True) + subprocess.run(uv.args, env=uv_env, check=True) - Import("env") - env: Environment = typing.cast(Environment, globals()["env"]) from src.Frekvens import Frekvens # noqa: E402 if env.IsCleanTarget(): diff --git a/scripts/src/components/Types.py b/scripts/src/components/Types.py index fe00bcfb..67ee88d0 100644 --- a/scripts/src/components/Types.py +++ b/scripts/src/components/Types.py @@ -35,9 +35,15 @@ def GetProjectOption(self, option: str, default: typing.Any = None) -> typing.An def IsCleanTarget(self) -> bool: raise NotImplementedError + def Replace(self, **kwargs: typing.Any) -> None: + raise NotImplementedError + def StringifyMacro(self, value: str) -> str: raise NotImplementedError + def subst(self, key: str) -> str: + raise NotImplementedError + def Import(*vars: str) -> None: raise NotImplementedError