20 lines
646 B
Python
20 lines
646 B
Python
from collections import defaultdict
|
|
|
|
from .api import API, Api
|
|
|
|
|
|
class ApiBundle:
|
|
def __init__(self, values: list[Api]):
|
|
self._values = values
|
|
self._providers_by_api = defaultdict(list)
|
|
self._api_map = {}
|
|
for value in self._values:
|
|
self._providers_by_api[value.type].append(value.provider)
|
|
self._api_map[(value.type, value.provider)] = value
|
|
|
|
def get_api_providers(self, api_type: type[API]) -> list[str]:
|
|
return self._providers_by_api[api_type.TYPE]
|
|
|
|
def get_api(self, api_type: type[API], provider: str) -> API:
|
|
return self._api_map[(api_type.TYPE, provider)]
|