comfy-env 0.1.22__tar.gz → 0.1.23__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {comfy_env-0.1.22 → comfy_env-0.1.23}/PKG-INFO +1 -1
  2. {comfy_env-0.1.22 → comfy_env-0.1.23}/pyproject.toml +1 -1
  3. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/install.py +3 -1
  4. comfy_env-0.1.23/src/comfy_env/packages/apt.py +68 -0
  5. comfy_env-0.1.22/src/comfy_env/packages/apt.py +0 -36
  6. {comfy_env-0.1.22 → comfy_env-0.1.23}/.github/workflows/ci.yml +0 -0
  7. {comfy_env-0.1.22 → comfy_env-0.1.23}/.github/workflows/publish.yml +0 -0
  8. {comfy_env-0.1.22 → comfy_env-0.1.23}/.gitignore +0 -0
  9. {comfy_env-0.1.22 → comfy_env-0.1.23}/LICENSE +0 -0
  10. {comfy_env-0.1.22 → comfy_env-0.1.23}/README.md +0 -0
  11. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/__init__.py +0 -0
  12. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/cli.py +0 -0
  13. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/config/__init__.py +0 -0
  14. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/config/parser.py +0 -0
  15. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/config/types.py +0 -0
  16. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/detection/__init__.py +0 -0
  17. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/detection/cuda.py +0 -0
  18. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/detection/gpu.py +0 -0
  19. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/detection/platform.py +0 -0
  20. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/detection/runtime.py +0 -0
  21. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/environment/__init__.py +0 -0
  22. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/environment/cache.py +0 -0
  23. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/environment/libomp.py +0 -0
  24. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/environment/paths.py +0 -0
  25. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/environment/setup.py +0 -0
  26. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/isolation/__init__.py +0 -0
  27. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/isolation/tensor_utils.py +0 -0
  28. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/isolation/workers/__init__.py +0 -0
  29. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/isolation/workers/base.py +0 -0
  30. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/isolation/workers/subprocess.py +0 -0
  31. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/isolation/wrap.py +0 -0
  32. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/packages/__init__.py +0 -0
  33. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/packages/cuda_wheels.py +0 -0
  34. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/packages/node_dependencies.py +0 -0
  35. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/packages/pixi.py +0 -0
  36. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/packages/toml_generator.py +0 -0
  37. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/templates/comfy-env-instructions.txt +0 -0
  38. {comfy_env-0.1.22 → comfy_env-0.1.23}/src/comfy_env/templates/comfy-env.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comfy-env
3
- Version: 0.1.22
3
+ Version: 0.1.23
4
4
  Summary: Environment management for ComfyUI custom nodes - CUDA wheel resolution and process isolation
5
5
  Project-URL: Homepage, https://github.com/PozzettiAndrea/comfy-env
6
6
  Project-URL: Repository, https://github.com/PozzettiAndrea/comfy-env
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "comfy-env"
3
- version = "0.1.22"
3
+ version = "0.1.23"
4
4
  description = "Environment management for ComfyUI custom nodes - CUDA wheel resolution and process isolation"
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}
@@ -59,7 +59,9 @@ def _install_apt_packages(packages: List[str], log: Callable[[str], None], dry_r
59
59
  return
60
60
  log(f"\n[apt] Installing: {', '.join(packages)}")
61
61
  if not dry_run:
62
- apt_install(packages, log)
62
+ success = apt_install(packages, log)
63
+ if not success:
64
+ log("[apt] WARNING: Some apt packages failed to install. This may cause issues.")
63
65
 
64
66
 
65
67
  def _set_persistent_env_vars(env_vars: dict, log: Callable[[str], None], dry_run: bool) -> None:
@@ -0,0 +1,68 @@
1
+ """APT package installation (Linux only)."""
2
+
3
+ import subprocess
4
+ import sys
5
+ from typing import Callable, List
6
+
7
+
8
+ def apt_install(packages: List[str], log: Callable[[str], None] = print) -> bool:
9
+ """Install system packages via apt-get. No-op on non-Linux."""
10
+ if not packages or sys.platform != "linux":
11
+ return True
12
+
13
+ log(f"[apt] Requested packages: {packages}")
14
+
15
+ # Check which packages are missing
16
+ missing = check_apt_packages(packages)
17
+ if not missing:
18
+ log("[apt] All packages already installed")
19
+ return True
20
+
21
+ log(f"[apt] Missing packages: {missing}")
22
+
23
+ # Run apt-get update with full output
24
+ log("[apt] Running: sudo apt-get update")
25
+ update_result = subprocess.run(
26
+ ["sudo", "apt-get", "update"],
27
+ capture_output=True, text=True
28
+ )
29
+ if update_result.returncode != 0:
30
+ log(f"[apt] WARNING: apt-get update failed (exit {update_result.returncode})")
31
+ log(f"[apt] stderr: {update_result.stderr}")
32
+ else:
33
+ log("[apt] apt-get update succeeded")
34
+
35
+ # Install missing packages
36
+ log(f"[apt] Running: sudo apt-get install -y {' '.join(missing)}")
37
+ result = subprocess.run(
38
+ ["sudo", "apt-get", "install", "-y"] + missing,
39
+ capture_output=True, text=True
40
+ )
41
+
42
+ if result.returncode != 0:
43
+ log(f"[apt] ERROR: apt-get install failed (exit {result.returncode})")
44
+ log(f"[apt] stdout: {result.stdout}")
45
+ log(f"[apt] stderr: {result.stderr}")
46
+ return False
47
+
48
+ log("[apt] Installation succeeded")
49
+
50
+ # Verify installation
51
+ still_missing = check_apt_packages(missing)
52
+ if still_missing:
53
+ log(f"[apt] WARNING: These packages still not found: {still_missing}")
54
+ return False
55
+
56
+ log("[apt] All packages verified installed")
57
+ return True
58
+
59
+
60
+ def check_apt_packages(packages: List[str]) -> List[str]:
61
+ """Return list of packages NOT installed."""
62
+ if sys.platform != "linux":
63
+ return []
64
+
65
+ return [
66
+ pkg for pkg in packages
67
+ if subprocess.run(["dpkg", "-s", pkg], capture_output=True).returncode != 0
68
+ ]
@@ -1,36 +0,0 @@
1
- """APT package installation (Linux only)."""
2
-
3
- import subprocess
4
- import sys
5
- from typing import Callable, List
6
-
7
-
8
- def apt_install(packages: List[str], log: Callable[[str], None] = print) -> bool:
9
- """Install system packages via apt-get. No-op on non-Linux."""
10
- if not packages or sys.platform != "linux":
11
- return True
12
-
13
- log(f"Installing apt packages: {packages}")
14
-
15
- subprocess.run(["sudo", "apt-get", "update"], capture_output=True, text=True)
16
-
17
- result = subprocess.run(
18
- ["sudo", "apt-get", "install", "-y"] + packages,
19
- capture_output=True, text=True
20
- )
21
- if result.returncode != 0:
22
- log(f"Warning: apt-get install failed: {result.stderr[:200]}")
23
- return False
24
-
25
- return True
26
-
27
-
28
- def check_apt_packages(packages: List[str]) -> List[str]:
29
- """Return list of packages NOT installed."""
30
- if sys.platform != "linux":
31
- return []
32
-
33
- return [
34
- pkg for pkg in packages
35
- if subprocess.run(["dpkg", "-s", pkg], capture_output=True).returncode != 0
36
- ]
File without changes
File without changes
File without changes