@@ -29,7 +29,7 @@ def __init__(self, hass: HomeAssistant, loader: Loader) -> None:
2929 self ._hass = hass
3030 self ._loader = loader
3131 self ._profiles : dict [str , list [PowerProfile ]] = {}
32- self ._manufacturer_models : dict [str , list [str ]] = {}
32+ self ._manufacturer_models : dict [str , set [str ]] = {}
3333 self ._manufacturer_device_types : dict [str , list ] = {}
3434
3535 async def initialize (self ) -> None :
@@ -71,24 +71,24 @@ async def get_manufacturer_listing(self, device_types: set[DeviceType] | None =
7171 manufacturers = await self ._loader .get_manufacturer_listing (device_types )
7272 return sorted (manufacturers )
7373
74- async def get_model_listing (self , manufacturer : str , device_types : set [DeviceType ] | None = None ) -> list [str ]:
74+ async def get_model_listing (self , manufacturer : str , device_types : set [DeviceType ] | None = None ) -> set [str ]:
7575 """Get listing of available models for a given manufacturer."""
7676
7777 resolved_manufacturers = await self ._loader .find_manufacturers (manufacturer )
7878 if not resolved_manufacturers :
79- return []
80- all_models : list [str ] = []
79+ return set ()
80+ all_models : set [str ] = set ()
8181 for manufacturer in resolved_manufacturers :
8282 cache_key = f"{ manufacturer } /{ device_types } "
8383 cached_models = self ._manufacturer_models .get (cache_key )
8484 if cached_models :
85- all_models .extend (cached_models )
85+ all_models .update (cached_models )
8686 continue
8787 models = await self ._loader .get_model_listing (manufacturer , device_types )
88- self ._manufacturer_models [cache_key ] = sorted ( models )
89- all_models .extend (models )
88+ self ._manufacturer_models [cache_key ] = models
89+ all_models .update (models )
9090
91- return all_models
91+ return set ( sorted ( all_models )) # noqa: C414
9292
9393 async def get_profile (
9494 self ,
0 commit comments