Ensure all base component dependencies are added (#157428)

This commit is contained in:
Joakim Plate
2025-12-21 15:24:56 +01:00
committed by GitHub
parent 6ef2d0d0a3
commit a81f2a63c0
2 changed files with 43 additions and 13 deletions

31
requirements.txt generated
View File

@@ -5,38 +5,45 @@
# Home Assistant Core
aiodns==3.6.1
aiohasupervisor==0.3.3
aiohttp-asyncmdnsresolver==0.1.1
aiohttp-fast-zlib==0.3.0
aiohttp==3.13.2
aiohttp_cors==0.8.1
aiohttp-fast-zlib==0.3.0
aiohttp-asyncmdnsresolver==0.1.1
aiozoneinfo==0.2.3
annotatedyaml==1.0.2
astral==2.2
async-interrupt==1.2.2
attrs==25.4.0
atomicwrites-homeassistant==1.4.1
attrs==25.4.0
audioop-lts==0.2.1
awesomeversion==25.8.0
bcrypt==5.0.0
certifi>=2021.5.30
ciso8601==2.3.3
cronsim==2.7
cryptography==46.0.2
fnv-hash-fast==1.6.0
ha-ffmpeg==3.2.2
hass-nabucasa==1.7.0
httpx==0.28.1
hassil==3.5.0
home-assistant-bluetooth==1.13.1
home-assistant-intents==2025.12.2
httpx==0.28.1
ifaddr==0.2.0
Jinja2==3.1.6
lru-dict==1.3.0
PyJWT==2.10.1
cryptography==46.0.2
Pillow==12.0.0
propcache==0.4.1
pyOpenSSL==25.3.0
mutagen==1.47.0
orjson==3.11.3
packaging>=23.1
Pillow==12.0.0
propcache==0.4.1
psutil-home-assistant==0.0.1
PyJWT==2.10.1
pyOpenSSL==25.3.0
pysilero-vad==3.0.1
pyspeex-noise==1.0.2
python-slugify==8.0.4
PyTurboJPEG==1.8.0
PyYAML==6.0.3
requests==2.32.5
securetar==2025.2.1
@@ -47,9 +54,9 @@ typing-extensions>=4.15.0,<5.0
ulid-transform==1.5.2
urllib3>=2.0
uv==0.9.17
voluptuous==0.15.2
voluptuous-serialize==2.7.0
voluptuous-openapi==0.1.0
yarl==1.22.0
voluptuous-serialize==2.7.0
voluptuous==0.15.2
webrtc-models==0.3.0
yarl==1.22.0
zeroconf==0.148.0

View File

@@ -350,6 +350,24 @@ def gather_modules() -> dict[str, list[str]] | None:
return reqs
def gather_entity_platform_requirements() -> set[str]:
"""Gather all of the requirements from manifests for entity platforms."""
config = _get_hassfest_config()
integrations = Integration.load_dir(config.core_integrations_path, config)
reqs = set()
for domain in sorted(integrations):
integration = integrations[domain]
if integration.disabled:
continue
if integration.integration_type != "entity":
continue
reqs.update(gather_recursive_requirements(integration.domain))
return reqs
def gather_requirements_from_manifests(
errors: list[str], reqs: dict[str, list[str]]
) -> None:
@@ -432,7 +450,12 @@ def requirements_output() -> str:
"\n",
"# Home Assistant Core\n",
]
output.append("\n".join(core_requirements()))
requirements = set()
requirements.update(core_requirements())
requirements.update(gather_entity_platform_requirements())
output.append("\n".join(sorted(requirements, key=lambda key: key.lower())))
output.append("\n")
return "".join(output)