From 18cd48862290d10072a9e19b57cc57abcc0ddf60 Mon Sep 17 00:00:00 2001 From: Erwin Douna Date: Wed, 1 Apr 2026 15:00:54 +0200 Subject: [PATCH] Hassfest requirements.py optimization (#166514) --- script/hassfest/requirements.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/script/hassfest/requirements.py b/script/hassfest/requirements.py index 39872330514..fbdacc552f3 100644 --- a/script/hassfest/requirements.py +++ b/script/hassfest/requirements.py @@ -502,6 +502,12 @@ def get_pipdeptree() -> dict[str, dict[str, Any]]: return deptree +@cache +def metadata_cache(package: str) -> dict: + """Return package metadata, cached.""" + return metadata(package) + + def get_requirements(integration: Integration, packages: set[str]) -> set[str]: """Return all (recursively) requirements for an integration.""" deptree = get_pipdeptree() @@ -550,7 +556,7 @@ def get_requirements(integration: Integration, packages: set[str]) -> set[str]: continue # Check for restrictive version limits on Python - if (requires_python := metadata(package)["Requires-Python"]) and not all( + if (requires_python := metadata_cache(package)["Requires-Python"]) and not all( _is_dependency_version_range_valid(version_part, "SemVer") for version_part in requires_python.split(",") ):