comfy-env 0.1.22__tar.gz → 0.1.24__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.

Potentially problematic release.


This version of comfy-env might be problematic. Click here for more details.

Files changed (38) hide show
  1. {comfy_env-0.1.22 → comfy_env-0.1.24}/PKG-INFO +1 -1
  2. {comfy_env-0.1.22 → comfy_env-0.1.24}/pyproject.toml +1 -1
  3. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/install.py +3 -1
  4. comfy_env-0.1.24/src/comfy_env/packages/apt.py +74 -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.24}/.github/workflows/ci.yml +0 -0
  7. {comfy_env-0.1.22 → comfy_env-0.1.24}/.github/workflows/publish.yml +0 -0
  8. {comfy_env-0.1.22 → comfy_env-0.1.24}/.gitignore +0 -0
  9. {comfy_env-0.1.22 → comfy_env-0.1.24}/LICENSE +0 -0
  10. {comfy_env-0.1.22 → comfy_env-0.1.24}/README.md +0 -0
  11. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/__init__.py +0 -0
  12. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/cli.py +0 -0
  13. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/config/__init__.py +0 -0
  14. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/config/parser.py +0 -0
  15. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/config/types.py +0 -0
  16. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/detection/__init__.py +0 -0
  17. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/detection/cuda.py +0 -0
  18. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/detection/gpu.py +0 -0
  19. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/detection/platform.py +0 -0
  20. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/detection/runtime.py +0 -0
  21. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/environment/__init__.py +0 -0
  22. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/environment/cache.py +0 -0
  23. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/environment/libomp.py +0 -0
  24. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/environment/paths.py +0 -0
  25. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/environment/setup.py +0 -0
  26. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/isolation/__init__.py +0 -0
  27. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/isolation/tensor_utils.py +0 -0
  28. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/isolation/workers/__init__.py +0 -0
  29. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/isolation/workers/base.py +0 -0
  30. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/isolation/workers/subprocess.py +0 -0
  31. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/isolation/wrap.py +0 -0
  32. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/packages/__init__.py +0 -0
  33. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/packages/cuda_wheels.py +0 -0
  34. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/packages/node_dependencies.py +0 -0
  35. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/packages/pixi.py +0 -0
  36. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/packages/toml_generator.py +0 -0
  37. {comfy_env-0.1.22 → comfy_env-0.1.24}/src/comfy_env/templates/comfy-env-instructions.txt +0 -0
  38. {comfy_env-0.1.22 → comfy_env-0.1.24}/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.24
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.24"
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,74 @@
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 packages ONE BY ONE so one failure doesn't block others
36
+ installed = []
37
+ failed = []
38
+ for pkg in missing:
39
+ log(f"[apt] Installing: {pkg}")
40
+ result = subprocess.run(
41
+ ["sudo", "apt-get", "install", "-y", pkg],
42
+ capture_output=True, text=True
43
+ )
44
+ if result.returncode != 0:
45
+ log(f"[apt] FAILED: {pkg} - {result.stderr.strip()}")
46
+ failed.append(pkg)
47
+ else:
48
+ log(f"[apt] OK: {pkg}")
49
+ installed.append(pkg)
50
+
51
+ # Summary
52
+ if installed:
53
+ log(f"[apt] Successfully installed: {installed}")
54
+ if failed:
55
+ log(f"[apt] Failed to install: {failed}")
56
+
57
+ # Verify what's actually installed now
58
+ still_missing = check_apt_packages(packages)
59
+ if still_missing:
60
+ log(f"[apt] WARNING: These packages are not available: {still_missing}")
61
+
62
+ # Return True if we installed at least something (partial success is OK)
63
+ return len(installed) > 0 or len(missing) == len(failed)
64
+
65
+
66
+ def check_apt_packages(packages: List[str]) -> List[str]:
67
+ """Return list of packages NOT installed."""
68
+ if sys.platform != "linux":
69
+ return []
70
+
71
+ return [
72
+ pkg for pkg in packages
73
+ if subprocess.run(["dpkg", "-s", pkg], capture_output=True).returncode != 0
74
+ ]
@@ -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