comfy-env 0.0.32__tar.gz → 0.0.33__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 (44) hide show
  1. {comfy_env-0.0.32 → comfy_env-0.0.33}/PKG-INFO +1 -1
  2. {comfy_env-0.0.32 → comfy_env-0.0.33}/pyproject.toml +1 -1
  3. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/manager.py +21 -9
  4. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/install.py +15 -6
  5. {comfy_env-0.0.32 → comfy_env-0.0.33}/.github/workflows/publish.yml +0 -0
  6. {comfy_env-0.0.32 → comfy_env-0.0.33}/.gitignore +0 -0
  7. {comfy_env-0.0.32 → comfy_env-0.0.33}/LICENSE +0 -0
  8. {comfy_env-0.0.32 → comfy_env-0.0.33}/README.md +0 -0
  9. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/__init__.py +0 -0
  10. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/cli.py +0 -0
  11. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/decorator.py +0 -0
  12. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/__init__.py +0 -0
  13. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/config.py +0 -0
  14. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/config_file.py +0 -0
  15. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/cuda_gpu_detection.py +0 -0
  16. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/platform/__init__.py +0 -0
  17. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/platform/base.py +0 -0
  18. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/platform/darwin.py +0 -0
  19. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/platform/linux.py +0 -0
  20. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/platform/windows.py +0 -0
  21. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/env/security.py +0 -0
  22. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/errors.py +0 -0
  23. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/index_resolver.py +0 -0
  24. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/__init__.py +0 -0
  25. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/bridge.py +0 -0
  26. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/protocol.py +0 -0
  27. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/tensor.py +0 -0
  28. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/torch_bridge.py +0 -0
  29. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/transport.py +0 -0
  30. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/ipc/worker.py +0 -0
  31. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/nodes.py +0 -0
  32. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/pixi.py +0 -0
  33. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/registry.py +0 -0
  34. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/resolver.py +0 -0
  35. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/stubs/__init__.py +0 -0
  36. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/stubs/folder_paths.py +0 -0
  37. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/wheel_sources.yml +0 -0
  38. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/workers/__init__.py +0 -0
  39. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/workers/base.py +0 -0
  40. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/workers/pool.py +0 -0
  41. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/workers/tensor_utils.py +0 -0
  42. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/workers/torch_mp.py +0 -0
  43. {comfy_env-0.0.32 → comfy_env-0.0.33}/src/comfy_env/workers/venv.py +0 -0
  44. {comfy_env-0.0.32 → comfy_env-0.0.33}/untitled.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comfy-env
3
- Version: 0.0.32
3
+ Version: 0.0.33
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.0.32"
3
+ version = "0.0.33"
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"}
@@ -386,20 +386,26 @@ class IsolatedEnvManager:
386
386
  self.log(f" Installing {package} ({method})...")
387
387
 
388
388
  if method == "index":
389
- # PEP 503 index - use --extra-index-url
389
+ # PEP 503 index - try to resolve exact wheel URL first
390
390
  index_url = self._substitute_template(config["index_url"], vars_dict)
391
391
  pkg_spec = f"{package}=={version}" if version else package
392
392
  # Try to resolve exact wheel URL from index
393
393
  wheel_url = resolve_wheel_from_index(index_url, package, vars_dict, version)
394
394
  if wheel_url:
395
+ # Install from resolved URL directly (guarantees we get what we resolved)
395
396
  self.log(f" Wheel: {wheel_url}")
397
+ result = subprocess.run(
398
+ pip_args + ["--no-deps", wheel_url],
399
+ capture_output=True, text=True,
400
+ )
396
401
  else:
402
+ # Fallback to index-based resolution
397
403
  self.log(f" Index: {index_url}")
398
404
  self.log(f" Package: {pkg_spec}")
399
- result = subprocess.run(
400
- pip_args + ["--extra-index-url", index_url, "--no-deps", pkg_spec],
401
- capture_output=True, text=True,
402
- )
405
+ result = subprocess.run(
406
+ pip_args + ["--extra-index-url", index_url, "--no-deps", pkg_spec],
407
+ capture_output=True, text=True,
408
+ )
403
409
 
404
410
  elif method in ("github_index", "find_links"):
405
411
  # GitHub Pages or generic find-links
@@ -408,14 +414,20 @@ class IsolatedEnvManager:
408
414
  # Try to resolve exact wheel URL from find-links page
409
415
  wheel_url = resolve_wheel_from_index(index_url, package, vars_dict, version)
410
416
  if wheel_url:
417
+ # Install from resolved URL directly (guarantees we get what we resolved)
411
418
  self.log(f" Wheel: {wheel_url}")
419
+ result = subprocess.run(
420
+ pip_args + ["--no-deps", wheel_url],
421
+ capture_output=True, text=True,
422
+ )
412
423
  else:
424
+ # Fallback to find-links based resolution
413
425
  self.log(f" Find-links: {index_url}")
414
426
  self.log(f" Package: {pkg_spec}")
415
- result = subprocess.run(
416
- pip_args + ["--find-links", index_url, "--no-deps", pkg_spec],
417
- capture_output=True, text=True,
418
- )
427
+ result = subprocess.run(
428
+ pip_args + ["--find-links", index_url, "--no-deps", pkg_spec],
429
+ capture_output=True, text=True,
430
+ )
419
431
 
420
432
  elif method == "pypi_variant":
421
433
  # Transform package name based on CUDA version
@@ -475,7 +475,7 @@ def _install_cuda_package(
475
475
  method = config["method"]
476
476
 
477
477
  if method == "index":
478
- # PEP 503 index - use pip --extra-index-url
478
+ # PEP 503 index - try to resolve exact wheel URL first
479
479
  index_url = _substitute_template(config["index_url"], env)
480
480
  # Check for version_template (e.g., detectron2 with embedded torch/cuda version)
481
481
  if "version_template" in config:
@@ -489,14 +489,17 @@ def _install_cuda_package(
489
489
  vars_dict = env.as_dict()
490
490
  wheel_url = resolve_wheel_from_index(index_url, package, vars_dict, actual_version)
491
491
  if wheel_url:
492
+ # Install from resolved URL directly (guarantees we get what we resolved)
492
493
  log(f" Wheel: {wheel_url}")
494
+ _pip_install([wheel_url], no_deps=True, log=log)
493
495
  else:
496
+ # Fallback to index-based resolution
494
497
  log(f" Index: {index_url}")
495
498
  log(f" Package: {pkg_spec}")
496
- _pip_install_with_index(pkg_spec, index_url, log)
499
+ _pip_install_with_index(pkg_spec, index_url, log)
497
500
 
498
501
  elif method == "github_index":
499
- # GitHub Pages index - use pip --find-links
502
+ # GitHub Pages index - try to resolve exact wheel URL first
500
503
  index_url = _substitute_template(config["index_url"], env)
501
504
  pkg_spec = f"{package}=={version}" if version else package
502
505
  log(f" Installing {package} (github_index)...")
@@ -504,14 +507,17 @@ def _install_cuda_package(
504
507
  vars_dict = env.as_dict()
505
508
  wheel_url = resolve_wheel_from_index(index_url, package, vars_dict, version)
506
509
  if wheel_url:
510
+ # Install from resolved URL directly (guarantees we get what we resolved)
507
511
  log(f" Wheel: {wheel_url}")
512
+ _pip_install([wheel_url], no_deps=True, log=log)
508
513
  else:
514
+ # Fallback to find-links based resolution
509
515
  log(f" Find-links: {index_url}")
510
516
  log(f" Package: {pkg_spec}")
511
- _pip_install_with_find_links(pkg_spec, index_url, log)
517
+ _pip_install_with_find_links(pkg_spec, index_url, log)
512
518
 
513
519
  elif method == "find_links":
514
- # Generic find-links (e.g., PyG) - use pip --find-links
520
+ # Generic find-links (e.g., PyG) - try to resolve exact wheel URL first
515
521
  index_url = _substitute_template(config["index_url"], env)
516
522
  pkg_spec = f"{package}=={version}" if version else package
517
523
  log(f" Installing {package} (find_links)...")
@@ -519,11 +525,14 @@ def _install_cuda_package(
519
525
  vars_dict = env.as_dict()
520
526
  wheel_url = resolve_wheel_from_index(index_url, package, vars_dict, version)
521
527
  if wheel_url:
528
+ # Install from resolved URL directly (guarantees we get what we resolved)
522
529
  log(f" Wheel: {wheel_url}")
530
+ _pip_install([wheel_url], no_deps=True, log=log)
523
531
  else:
532
+ # Fallback to find-links based resolution
524
533
  log(f" Find-links: {index_url}")
525
534
  log(f" Package: {pkg_spec}")
526
- _pip_install_with_find_links(pkg_spec, index_url, log)
535
+ _pip_install_with_find_links(pkg_spec, index_url, log)
527
536
 
528
537
  elif method == "pypi_variant":
529
538
  # Transform package name based on CUDA version
File without changes
File without changes
File without changes
File without changes