mirror of
https://github.com/home-assistant/core.git
synced 2025-04-26 02:07:54 +00:00

## Description: Generate requirements_* from manifests (if present). If not, fallback to the current approach of reading `REQUIREMENTS` from the module attribute. I disabled exploring the children of the `homeassistant.components.*` packages since that will just add a dependency (from the manifest) due to each of the python files in the package. Just having one for the top level package should be sufficient. **Related issue (if applicable):** relates to #22700 ## Checklist: - [x] The code change is tested and works locally. - [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass** - [x] There is no commented out code in this PR. [ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L14 [ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard/__init__.py#L23 Co-authored-by: Jason Hu <awaregit@gmail.com>
23 lines
746 B
Python
23 lines
746 B
Python
"""Helpers to gather requirements from manifests."""
|
|
from .manifest_helper import iter_manifests
|
|
|
|
|
|
def gather_requirements_from_manifests(process_requirements, errors, reqs):
|
|
"""Gather all of the requirements from manifests."""
|
|
for manifest in iter_manifests():
|
|
assert manifest['domain']
|
|
|
|
if manifest.get('requirements') is None:
|
|
errors.append(
|
|
'The manifest for component {} is invalid. Please run'
|
|
'script/manifest/validate.py'.format(manifest['domain'])
|
|
)
|
|
continue
|
|
|
|
process_requirements(
|
|
errors,
|
|
manifest['requirements'],
|
|
'homeassistant.components.{}'.format(manifest['domain']),
|
|
reqs
|
|
)
|