comfy-env 0.1.4__tar.gz → 0.1.5__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 (34) hide show
  1. {comfy_env-0.1.4 → comfy_env-0.1.5}/PKG-INFO +1 -1
  2. {comfy_env-0.1.4 → comfy_env-0.1.5}/pyproject.toml +1 -1
  3. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/workers/mp.py +44 -2
  4. {comfy_env-0.1.4 → comfy_env-0.1.5}/.github/workflows/ci.yml +0 -0
  5. {comfy_env-0.1.4 → comfy_env-0.1.5}/.github/workflows/publish.yml +0 -0
  6. {comfy_env-0.1.4 → comfy_env-0.1.5}/.gitignore +0 -0
  7. {comfy_env-0.1.4 → comfy_env-0.1.5}/LICENSE +0 -0
  8. {comfy_env-0.1.4 → comfy_env-0.1.5}/README.md +0 -0
  9. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/__init__.py +0 -0
  10. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/cli.py +0 -0
  11. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/config/__init__.py +0 -0
  12. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/config/parser.py +0 -0
  13. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/config/types.py +0 -0
  14. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/errors.py +0 -0
  15. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/install.py +0 -0
  16. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/isolation/__init__.py +0 -0
  17. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/isolation/wrap.py +0 -0
  18. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/nodes.py +0 -0
  19. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/__init__.py +0 -0
  20. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/core.py +0 -0
  21. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/cuda_detection.py +0 -0
  22. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/platform/__init__.py +0 -0
  23. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/platform/base.py +0 -0
  24. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/platform/darwin.py +0 -0
  25. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/platform/linux.py +0 -0
  26. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/platform/windows.py +0 -0
  27. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/pixi/resolver.py +0 -0
  28. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/prestartup.py +0 -0
  29. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/templates/comfy-env-instructions.txt +0 -0
  30. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/templates/comfy-env.toml +0 -0
  31. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/workers/__init__.py +0 -0
  32. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/workers/base.py +0 -0
  33. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/workers/subprocess.py +0 -0
  34. {comfy_env-0.1.4 → comfy_env-0.1.5}/src/comfy_env/workers/tensor_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comfy-env
3
- Version: 0.1.4
3
+ Version: 0.1.5
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.4"
3
+ version = "0.1.5"
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"}
@@ -40,7 +40,44 @@ _SHUTDOWN = object()
40
40
  _CALL_METHOD = "call_method"
41
41
 
42
42
 
43
- def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, env_vars=None):
43
+ def _dump_worker_env(worker_name: str = "unknown"):
44
+ """Dump worker environment to .comfy-env/logs/ for debugging."""
45
+ import json
46
+ import os
47
+ import platform
48
+ import sys
49
+ from datetime import datetime
50
+ from pathlib import Path
51
+
52
+ log_dir = Path.cwd() / ".comfy-env" / "logs"
53
+ log_dir.mkdir(parents=True, exist_ok=True)
54
+
55
+ debug_info = {
56
+ "timestamp": datetime.now().isoformat(),
57
+ "worker_name": worker_name,
58
+ "pid": os.getpid(),
59
+ "cwd": os.getcwd(),
60
+ "python": {
61
+ "executable": sys.executable,
62
+ "version": sys.version,
63
+ "prefix": sys.prefix,
64
+ },
65
+ "platform": {
66
+ "system": platform.system(),
67
+ "machine": platform.machine(),
68
+ "release": platform.release(),
69
+ },
70
+ "env_vars": dict(os.environ),
71
+ "sys_path": sys.path,
72
+ "modules_loaded": sorted(sys.modules.keys()),
73
+ }
74
+
75
+ log_file = log_dir / f"worker_{worker_name}_{os.getpid()}.json"
76
+ log_file.write_text(json.dumps(debug_info, indent=2, default=str))
77
+ print(f"[comfy-env] Worker env dumped to: {log_file}")
78
+
79
+
80
+ def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, env_vars=None, worker_name=None):
44
81
  """
45
82
  Worker process main loop.
46
83
 
@@ -57,6 +94,7 @@ def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, en
57
94
  sys_path_additions: Paths to add to sys.path
58
95
  lib_path: Path to add to LD_LIBRARY_PATH (for conda libraries)
59
96
  env_vars: Environment variables to set (from comfy-env.toml)
97
+ worker_name: Name of the worker (for logging)
60
98
  """
61
99
  import os
62
100
  import sys
@@ -69,6 +107,10 @@ def _worker_loop(queue_in, queue_out, sys_path_additions=None, lib_path=None, en
69
107
  # Set worker mode env var
70
108
  os.environ["COMFYUI_ISOLATION_WORKER"] = "1"
71
109
 
110
+ # Debug logging if enabled
111
+ if os.environ.get("COMFY_ENV_DEBUG", "").lower() in ("1", "true", "yes"):
112
+ _dump_worker_env(worker_name or "unknown")
113
+
72
114
  # DLL/library isolation - match SubprocessWorker's isolation level
73
115
  # Filter out conflicting paths from conda/mamba/etc and use proper DLL registration
74
116
  path_sep = ";" if sys.platform == "win32" else ":"
@@ -511,7 +553,7 @@ class MPWorker(Worker):
511
553
  self._queue_out = ctx.Queue()
512
554
  self._process = ctx.Process(
513
555
  target=_worker_loop,
514
- args=(self._queue_in, self._queue_out, self._sys_path, self._lib_path, self._env_vars),
556
+ args=(self._queue_in, self._queue_out, self._sys_path, self._lib_path, self._env_vars, self.name),
515
557
  daemon=True,
516
558
  )
517
559
  self._process.start()
File without changes
File without changes
File without changes