mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-05-30 10:57:23 +08:00
Cache get_comfy_package_versions()
Mirrors the PACKAGE_VERSIONS cache in utils/install_util.py. Installed package versions don't change over the lifetime of the process, so a one-shot module-level cache makes /system_stats polling effectively free instead of doing N importlib.metadata.version() lookups per call.
This commit is contained in:
parent
7ab2941420
commit
5777d757a2
@ -42,9 +42,12 @@ def get_required_frontend_version():
|
|||||||
return get_required_packages_versions().get("comfyui-frontend-package", None)
|
return get_required_packages_versions().get("comfyui-frontend-package", None)
|
||||||
|
|
||||||
|
|
||||||
|
COMFY_PACKAGE_VERSIONS = []
|
||||||
def get_comfy_package_versions():
|
def get_comfy_package_versions():
|
||||||
"""List installed/required versions for every comfy* package in requirements.txt."""
|
"""List installed/required versions for every comfy* package in requirements.txt."""
|
||||||
out = []
|
if COMFY_PACKAGE_VERSIONS:
|
||||||
|
return COMFY_PACKAGE_VERSIONS.copy()
|
||||||
|
out = COMFY_PACKAGE_VERSIONS
|
||||||
for name, required in (get_required_packages_versions() or {}).items():
|
for name, required in (get_required_packages_versions() or {}).items():
|
||||||
if not name.startswith("comfy"):
|
if not name.startswith("comfy"):
|
||||||
continue
|
continue
|
||||||
@ -53,7 +56,7 @@ def get_comfy_package_versions():
|
|||||||
except Exception:
|
except Exception:
|
||||||
installed = None
|
installed = None
|
||||||
out.append({"name": name, "installed": installed, "required": required})
|
out.append({"name": name, "installed": installed, "required": required})
|
||||||
return out
|
return out.copy()
|
||||||
|
|
||||||
|
|
||||||
def check_comfy_packages_versions():
|
def check_comfy_packages_versions():
|
||||||
|
|||||||
@ -52,7 +52,10 @@ def mock_provider(mock_releases):
|
|||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def clear_cache():
|
def clear_cache():
|
||||||
import utils.install_util
|
import utils.install_util
|
||||||
|
import app.frontend_management
|
||||||
|
|
||||||
utils.install_util.PACKAGE_VERSIONS = {}
|
utils.install_util.PACKAGE_VERSIONS = {}
|
||||||
|
app.frontend_management.COMFY_PACKAGE_VERSIONS = []
|
||||||
|
|
||||||
|
|
||||||
def test_get_release(mock_provider, mock_releases):
|
def test_get_release(mock_provider, mock_releases):
|
||||||
@ -277,7 +280,9 @@ def test_get_installed_templates_version():
|
|||||||
|
|
||||||
def test_get_installed_templates_version_not_installed():
|
def test_get_installed_templates_version_not_installed():
|
||||||
# Act
|
# Act
|
||||||
with patch("app.frontend_management.version", side_effect=Exception("Package not found")):
|
with patch(
|
||||||
|
"app.frontend_management.version", side_effect=Exception("Package not found")
|
||||||
|
):
|
||||||
version = FrontendManager.get_installed_templates_version()
|
version = FrontendManager.get_installed_templates_version()
|
||||||
|
|
||||||
# Assert
|
# Assert
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user