comfy-env 0.1.17__tar.gz → 0.1.19__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.17 → comfy_env-0.1.19}/PKG-INFO +1 -1
  2. {comfy_env-0.1.17 → comfy_env-0.1.19}/pyproject.toml +1 -1
  3. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/workers/subprocess.py +43 -25
  4. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/packages/__init__.py +0 -2
  5. {comfy_env-0.1.17 → comfy_env-0.1.19}/.github/workflows/ci.yml +0 -0
  6. {comfy_env-0.1.17 → comfy_env-0.1.19}/.github/workflows/publish.yml +0 -0
  7. {comfy_env-0.1.17 → comfy_env-0.1.19}/.gitignore +0 -0
  8. {comfy_env-0.1.17 → comfy_env-0.1.19}/LICENSE +0 -0
  9. {comfy_env-0.1.17 → comfy_env-0.1.19}/README.md +0 -0
  10. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/__init__.py +0 -0
  11. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/cli.py +0 -0
  12. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/config/__init__.py +0 -0
  13. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/config/parser.py +0 -0
  14. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/config/types.py +0 -0
  15. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/detection/__init__.py +0 -0
  16. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/detection/cuda.py +0 -0
  17. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/detection/gpu.py +0 -0
  18. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/detection/platform.py +0 -0
  19. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/detection/runtime.py +0 -0
  20. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/environment/__init__.py +0 -0
  21. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/environment/cache.py +0 -0
  22. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/environment/libomp.py +0 -0
  23. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/environment/paths.py +0 -0
  24. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/environment/setup.py +0 -0
  25. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/install.py +0 -0
  26. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/__init__.py +0 -0
  27. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/tensor_utils.py +0 -0
  28. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/workers/__init__.py +0 -0
  29. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/workers/base.py +0 -0
  30. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/workers/mp.py +0 -0
  31. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/isolation/wrap.py +0 -0
  32. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/packages/apt.py +0 -0
  33. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/packages/cuda_wheels.py +0 -0
  34. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/packages/node_dependencies.py +0 -0
  35. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/packages/pixi.py +0 -0
  36. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/packages/toml_generator.py +0 -0
  37. {comfy_env-0.1.17 → comfy_env-0.1.19}/src/comfy_env/templates/comfy-env-instructions.txt +0 -0
  38. {comfy_env-0.1.17 → comfy_env-0.1.19}/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.17
3
+ Version: 0.1.19
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.17"
3
+ version = "0.1.19"
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"}
@@ -193,6 +193,32 @@ from multiprocessing import shared_memory as shm
193
193
  import numpy as np
194
194
 
195
195
 
196
+ def _prepare_trimesh_for_pickle(mesh):
197
+ """
198
+ Prepare a trimesh object for cross-Python-version pickling.
199
+
200
+ Trimesh attaches helper objects (ray tracer, proximity query) that may use
201
+ native extensions like embreex. These cause import errors when unpickling
202
+ on a system without those extensions. We strip them - they'll be recreated
203
+ lazily when needed.
204
+
205
+ Note: Do NOT strip _cache - trimesh needs it to function properly.
206
+ """
207
+ # Make a copy to avoid modifying the original
208
+ mesh = mesh.copy()
209
+
210
+ # Remove helper objects that may have unpickleable native code references
211
+ # These are lazily recreated on first access anyway
212
+ # Do NOT remove _cache - it's needed for trimesh to work
213
+ for attr in ('ray', '_ray', 'permutate', 'nearest'):
214
+ try:
215
+ delattr(mesh, attr)
216
+ except AttributeError:
217
+ pass
218
+
219
+ return mesh
220
+
221
+
196
222
  def _to_shm(obj, registry, visited=None):
197
223
  """
198
224
  Serialize object to shared memory. Returns JSON-safe metadata.
@@ -231,6 +257,7 @@ def _to_shm(obj, registry, visited=None):
231
257
  # trimesh.Trimesh -> pickle -> shared memory (preserves visual, metadata, normals)
232
258
  if t == 'Trimesh':
233
259
  import pickle
260
+ obj = _prepare_trimesh_for_pickle(obj)
234
261
  mesh_bytes = pickle.dumps(obj)
235
262
 
236
263
  block = shm.SharedMemory(create=True, size=len(mesh_bytes))
@@ -506,6 +533,21 @@ if sys.platform == "win32":
506
533
  from multiprocessing import shared_memory as shm
507
534
  import numpy as np
508
535
 
536
+
537
+ def _prepare_trimesh_for_pickle(mesh):
538
+ """
539
+ Prepare a trimesh object for cross-Python-version pickling.
540
+ Strips native extension helpers that cause import errors.
541
+ """
542
+ mesh = mesh.copy()
543
+ for attr in ('ray', '_ray', 'permutate', 'nearest'):
544
+ try:
545
+ delattr(mesh, attr)
546
+ except AttributeError:
547
+ pass
548
+ return mesh
549
+
550
+
509
551
  def _to_shm(obj, registry, visited=None):
510
552
  """Serialize to shared memory. Returns JSON-safe metadata."""
511
553
  if visited is None:
@@ -533,6 +575,7 @@ def _to_shm(obj, registry, visited=None):
533
575
  # trimesh.Trimesh -> pickle -> shared memory (preserves visual, metadata, normals)
534
576
  if t == 'Trimesh':
535
577
  import pickle
578
+ obj = _prepare_trimesh_for_pickle(obj)
536
579
  mesh_bytes = pickle.dumps(obj)
537
580
 
538
581
  block = shm.SharedMemory(create=True, size=len(mesh_bytes))
@@ -642,31 +685,6 @@ def _should_use_reference(obj):
642
685
  # Everything else (custom classes) - pass by reference
643
686
  return True
644
687
 
645
- def _prepare_trimesh_for_pickle(mesh):
646
- """
647
- Prepare a trimesh object for cross-Python-version pickling.
648
-
649
- Trimesh attaches helper objects (ray tracer, proximity query) that may use
650
- native extensions like embreex. These cause import errors when unpickling
651
- on a system without those extensions. We strip them - they'll be recreated
652
- lazily when needed.
653
-
654
- Note: Do NOT strip _cache - trimesh needs it to function properly.
655
- """
656
- # Make a copy to avoid modifying the original
657
- mesh = mesh.copy()
658
-
659
- # Remove helper objects that may have unpickleable native code references
660
- # These are lazily recreated on first access anyway
661
- # Do NOT remove _cache - it's needed for trimesh to work
662
- for attr in ('ray', '_ray', 'permutate', 'nearest'):
663
- try:
664
- delattr(mesh, attr)
665
- except AttributeError:
666
- pass
667
-
668
- return mesh
669
-
670
688
 
671
689
  def _serialize_result(obj, visited=None):
672
690
  """Convert result for IPC - complex objects become references."""
@@ -5,7 +5,6 @@ Handles pixi, CUDA wheels, apt packages, and node dependencies.
5
5
  """
6
6
 
7
7
  from .pixi import (
8
- PIXI_VERSION,
9
8
  ensure_pixi,
10
9
  get_pixi_path,
11
10
  get_pixi_python,
@@ -35,7 +34,6 @@ from .node_dependencies import (
35
34
 
36
35
  __all__ = [
37
36
  # Pixi package manager
38
- "PIXI_VERSION",
39
37
  "ensure_pixi",
40
38
  "get_pixi_path",
41
39
  "get_pixi_python",
File without changes
File without changes
File without changes