22 lines
675 B
Python
22 lines
675 B
Python
from __future__ import annotations
|
|
|
|
from app.models import AppConfig, ResolvedProfile
|
|
|
|
|
|
def resolve_profile(
|
|
*,
|
|
app_config: AppConfig,
|
|
client_type: str,
|
|
selected_source_names: list[str],
|
|
) -> ResolvedProfile:
|
|
client = app_config.clients[client_type]
|
|
return ResolvedProfile(
|
|
client_type=client_type,
|
|
client=client,
|
|
selected_sources={name: app_config.sources[name] for name in selected_source_names if name in app_config.sources},
|
|
rules=dict(app_config.rules),
|
|
regions=dict(app_config.regions),
|
|
selector_groups=list(app_config.selector_groups),
|
|
policy_groups=list(app_config.policy_groups),
|
|
)
|