comfy-env 0.0.32__py3-none-any.whl → 0.0.33__py3-none-any.whl

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.
comfy_env/env/manager.py CHANGED
@@ -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
comfy_env/install.py CHANGED
@@ -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
@@ -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
@@ -3,7 +3,7 @@ comfy_env/cli.py,sha256=X-GCQMP0mtMcE3ZgkT-VLQ4Gq3UUvcb_Ux_NClEFhgI,15975
3
3
  comfy_env/decorator.py,sha256=6JCKwLHaZtOLVDexs_gh_-NtS2ZK0V7nGCPqkyeYEAA,16688
4
4
  comfy_env/errors.py,sha256=8hN8NDlo8oBUdapc-eT3ZluigI5VBzfqsSBvQdfWlz4,9943
5
5
  comfy_env/index_resolver.py,sha256=D8BttTJ7BOiukUvmdT6_dGdzFV3CahGL2m28X-HwPeE,4650
6
- comfy_env/install.py,sha256=zVrpo6bzWw2gSYTAzjp-6Ne75swLfOr-mhpROe6PhJY,29748
6
+ comfy_env/install.py,sha256=eS3Q8T9bFP4AH2PfqLmjqWA8cu8vJsg02aXBTP5x1IQ,30446
7
7
  comfy_env/nodes.py,sha256=CWUe35jU5SKk4ur-SddZePdqWgxJDlxGhpcJiu5pAK4,4354
8
8
  comfy_env/pixi.py,sha256=_p3h9iFPHwNaEAEL8SeMJLaUmoyrroH4HJcbfG1Nh8A,13383
9
9
  comfy_env/registry.py,sha256=uFCtGmWYvwGCqObXgzmArX7o5JsFNsHXxayofk3m6no,2569
@@ -12,7 +12,7 @@ comfy_env/env/__init__.py,sha256=imQdoQEQvrRT-QDtyNpFlkVbm2fBzgACdpQwRPd09fI,115
12
12
  comfy_env/env/config.py,sha256=5rK7r2uRItMXJnKAn8DmVQoadLo2njHTuaxrWybhppU,7469
13
13
  comfy_env/env/config_file.py,sha256=1UdcL1TwKceGaSunCnsHiuPyxpCSq1JpelScUEsCBn8,23669
14
14
  comfy_env/env/cuda_gpu_detection.py,sha256=YLuXUdWg6FeKdNyLlQAHPlveg4rTenXJ2VbeAaEi9QE,9755
15
- comfy_env/env/manager.py,sha256=zBBN5P0rOrXzPodoF2294xsk4F1Gg7CWZsn2MkxlWkw,25678
15
+ comfy_env/env/manager.py,sha256=wv_od7Rxa-qMlToUGzOhAsDvZY6C0P7y9ayqYiKKLPg,26460
16
16
  comfy_env/env/security.py,sha256=dNSitAnfBNVdvxgBBntYw33AJaCs_S1MHb7KJhAVYzM,8171
17
17
  comfy_env/env/platform/__init__.py,sha256=Nb5MPZIEeanSMEWwqU4p4bnEKTJn1tWcwobnhq9x9IY,614
18
18
  comfy_env/env/platform/base.py,sha256=iS0ptTTVjXRwPU4qWUdvHI7jteuzxGSjWr5BUQ7hGiU,2453
@@ -35,8 +35,8 @@ comfy_env/workers/tensor_utils.py,sha256=TCuOAjJymrSbkgfyvcKtQ_KbVWTqSwP9VH_bCaF
35
35
  comfy_env/workers/torch_mp.py,sha256=4YSNPn7hALrvMVbkO4RkTeFTcc0lhfLMk5QTWjY4PHw,22134
36
36
  comfy_env/workers/venv.py,sha256=_ekHfZPqBIPY08DjqiXm6cTBQH4DrbxRWR3AAv3mit8,31589
37
37
  comfy_env/wheel_sources.yml,sha256=kZGK4-AJ0vvKmqDdxuiATLjGkaHHs-ansIckYION_nA,8871
38
- comfy_env-0.0.32.dist-info/METADATA,sha256=1IkItwJJn7EIvUCVfSTT3iq0MSh5d8PKsYxkk2LCtVo,5400
39
- comfy_env-0.0.32.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
40
- comfy_env-0.0.32.dist-info/entry_points.txt,sha256=J4fXeqgxU_YenuW_Zxn_pEL7J-3R0--b6MS5t0QmAr0,49
41
- comfy_env-0.0.32.dist-info/licenses/LICENSE,sha256=E68QZMMpW4P2YKstTZ3QU54HRQO8ecew09XZ4_Vn870,1093
42
- comfy_env-0.0.32.dist-info/RECORD,,
38
+ comfy_env-0.0.33.dist-info/METADATA,sha256=ITSX8uJmmBFHRxQpRPrssS-u8jtS6SVzhBVZzWKz3lg,5400
39
+ comfy_env-0.0.33.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
40
+ comfy_env-0.0.33.dist-info/entry_points.txt,sha256=J4fXeqgxU_YenuW_Zxn_pEL7J-3R0--b6MS5t0QmAr0,49
41
+ comfy_env-0.0.33.dist-info/licenses/LICENSE,sha256=E68QZMMpW4P2YKstTZ3QU54HRQO8ecew09XZ4_Vn870,1093
42
+ comfy_env-0.0.33.dist-info/RECORD,,