1 """Merging of policies."""
3 from __future__
import annotations
5 from typing
import cast
7 from .types
import CategoryType, PolicyType
12 new_policy: dict[str, CategoryType] = {}
13 seen: set[str] = set()
14 for policy
in policies:
15 for category
in policy:
20 [policy.get(category)
for policy
in policies]
22 cast(PolicyType, new_policy)
39 policy: CategoryType =
None
40 seen: set[str] = set()
41 for source
in sources:
49 assert isinstance(source, dict)
52 policy = cast(CategoryType, {})
54 assert isinstance(policy, dict)
61 key_sources = [src.get(key)
for src
in sources
if isinstance(src, dict)]
PolicyType merge_policies(list[PolicyType] policies)
CategoryType _merge_policies(list[CategoryType] sources)