"""Canonical partial matching for acceptance-claim expectations.""" from __future__ import annotations from typing import Any def contains_expected(actual: Any, required: Any) -> bool: """Allow an actual claim to add provider-chosen optional fields only.""" if isinstance(required, dict): return isinstance(actual, dict) and all( key in actual and contains_expected(actual[key], value) for key, value in required.items() ) if isinstance(required, list): return isinstance(actual, list) and len(actual) == len(required) and all( contains_expected(actual_item, required_item) for actual_item, required_item in zip(actual, required, strict=True) ) return actual == required