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 +21 -9
- comfy_env/install.py +15 -6
- {comfy_env-0.0.32.dist-info → comfy_env-0.0.33.dist-info}/METADATA +1 -1
- {comfy_env-0.0.32.dist-info → comfy_env-0.0.33.dist-info}/RECORD +7 -7
- {comfy_env-0.0.32.dist-info → comfy_env-0.0.33.dist-info}/WHEEL +0 -0
- {comfy_env-0.0.32.dist-info → comfy_env-0.0.33.dist-info}/entry_points.txt +0 -0
- {comfy_env-0.0.32.dist-info → comfy_env-0.0.33.dist-info}/licenses/LICENSE +0 -0
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 -
|
|
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
|
-
|
|
400
|
-
|
|
401
|
-
|
|
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
|
-
|
|
416
|
-
|
|
417
|
-
|
|
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 -
|
|
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
|
-
|
|
499
|
+
_pip_install_with_index(pkg_spec, index_url, log)
|
|
497
500
|
|
|
498
501
|
elif method == "github_index":
|
|
499
|
-
# GitHub Pages index -
|
|
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
|
-
|
|
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) -
|
|
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
|
-
|
|
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.
|
|
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=
|
|
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=
|
|
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.
|
|
39
|
-
comfy_env-0.0.
|
|
40
|
-
comfy_env-0.0.
|
|
41
|
-
comfy_env-0.0.
|
|
42
|
-
comfy_env-0.0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|