197 files
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
from custom_components.powercalc.power_profile.loader.protocol import Loader
|
||||
from custom_components.powercalc.power_profile.loader.protocol import Loader, ModelMetadata
|
||||
from custom_components.powercalc.power_profile.power_profile import DeviceType, DiscoveryBy
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
@@ -11,13 +11,13 @@ class CompositeLoader(Loader):
|
||||
def __init__(self, loaders: list[Loader]) -> None:
|
||||
self.loaders = loaders
|
||||
|
||||
async def initialize(self) -> None:
|
||||
async def initialize(self, prefer_cached: bool = False) -> None:
|
||||
for loader in self.loaders:
|
||||
await loader.initialize()
|
||||
await loader.initialize(prefer_cached)
|
||||
|
||||
def get_discovery_ignored_domains(self) -> set[str]:
|
||||
"""Get all integration domains excluded by the combined libraries."""
|
||||
return {domain for loader in self.loaders for domain in loader.get_discovery_ignored_domains()}
|
||||
def get_discovery_low_priority_domains(self) -> set[str]:
|
||||
"""Get all low priority integration domains of the combined libraries."""
|
||||
return {domain for loader in self.loaders for domain in loader.get_discovery_low_priority_domains()}
|
||||
|
||||
async def get_manufacturer_listing(
|
||||
self,
|
||||
@@ -75,6 +75,15 @@ class CompositeLoader(Loader):
|
||||
|
||||
return models
|
||||
|
||||
async def get_model_metadata(self, manufacturer: str, model: str) -> ModelMetadata | None:
|
||||
"""Return the metadata of the first loader knowing the model, matching load_model precedence."""
|
||||
for loader in self.loaders:
|
||||
metadata = await loader.get_model_metadata(manufacturer, model)
|
||||
if metadata:
|
||||
return metadata
|
||||
|
||||
return None
|
||||
|
||||
async def find_model_migration(self, manufacturer: str, model: str) -> str | None:
|
||||
"""Find the canonical model id for a legacy profile id."""
|
||||
matches: set[str] = set()
|
||||
|
||||
Reference in New Issue
Block a user