This commit is contained in:
2026-05-04 10:03:38 +02:00
5 changed files with 236 additions and 0 deletions
+68
View File
@@ -11,7 +11,14 @@ uv install strategy (in order):
"""
from __future__ import annotations
<<<<<<< HEAD
import argparse
=======
<<<<<<< HEAD
import argparse
=======
>>>>>>> refs/remotes/azuze/main
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
import io
import json
import os
@@ -207,6 +214,10 @@ def _uv_pip(uv: list[str], args: list[str]) -> None:
subprocess.check_call(cmd)
<<<<<<< HEAD
=======
<<<<<<< HEAD
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
def detect_and_install(
uv: list[str],
force_backend: str | None = None,
@@ -221,6 +232,17 @@ def detect_and_install(
f"[kawai] Backend: {info.backend}{forced_note} | "
f"{info.vendor} / {info.device_name} / {info.vram_gb:.1f} GB / tier={info.tier}"
)
<<<<<<< HEAD
=======
=======
def detect_and_install(uv: list[str]) -> dict:
sys.path.insert(0, str(ROOT))
from backends import hardware
info = hardware.detect()
print(f"[kawai] Detected: {info.vendor} / {info.device_name} / {info.vram_gb:.1f} GB / tier={info.tier}")
>>>>>>> refs/remotes/azuze/main
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
_uv_pip(uv, hardware.torch_install_args(info))
_uv_pip(uv, ["-r", str(ROOT / "requirements.txt")])
@@ -231,7 +253,14 @@ def detect_and_install(
"device_name": info.device_name,
"vram_gb": info.vram_gb,
"tier": info.tier,
<<<<<<< HEAD
"forced": bool(force_backend and force_backend != "auto"),
=======
<<<<<<< HEAD
"forced": bool(force_backend and force_backend != "auto"),
=======
>>>>>>> refs/remotes/azuze/main
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
}
HARDWARE_CACHE.write_text(json.dumps(payload, indent=2))
MARKER.write_text("ok")
@@ -245,12 +274,24 @@ def already_in_venv() -> bool:
return False
<<<<<<< HEAD
def relaunch_in_venv(forwarded_args: list[str]) -> None:
=======
<<<<<<< HEAD
def relaunch_in_venv(forwarded_args: list[str]) -> None:
=======
def relaunch_in_venv() -> None:
>>>>>>> refs/remotes/azuze/main
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
"""Re-exec the launcher inside the venv. Use subprocess on Windows because
os.execv mangles argv with spaces in paths."""
print("[kawai] Relaunching inside venv...")
py = str(venv_python())
script = str(ROOT / "launcher.py")
<<<<<<< HEAD
=======
<<<<<<< HEAD
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
argv = [py, script, *forwarded_args]
if os.name == "nt":
result = subprocess.run(argv)
@@ -299,6 +340,23 @@ def main() -> None:
if not MARKER.exists():
uv = _ensure_uv()
detect_and_install(uv, force_backend=forced, force_vendor=args.vendor)
<<<<<<< HEAD
=======
=======
if os.name == "nt":
result = subprocess.run([py, script])
sys.exit(result.returncode)
else:
os.execv(py, [py, script])
def main() -> None:
if already_in_venv():
if not MARKER.exists():
uv = _ensure_uv()
detect_and_install(uv)
>>>>>>> refs/remotes/azuze/main
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
from app import run
run()
return
@@ -306,8 +364,18 @@ def main() -> None:
uv = _ensure_uv()
_create_venv(uv)
if not MARKER.exists():
<<<<<<< HEAD
detect_and_install(uv, force_backend=forced, force_vendor=args.vendor)
relaunch_in_venv(sys.argv[1:])
=======
<<<<<<< HEAD
detect_and_install(uv, force_backend=forced, force_vendor=args.vendor)
relaunch_in_venv(sys.argv[1:])
=======
detect_and_install(uv)
relaunch_in_venv()
>>>>>>> refs/remotes/azuze/main
>>>>>>> 965a3d97c6dae38fa25174559b1ea0f3050788f9
if __name__ == "__main__":