Skip to content

symfonic.agent.facade_cache

facade_cache

Resolve the facade's one provider-wire cache policy.

cache_composition_for

cache_composition_for(capabilities: Sequence[Any]) -> Any | None

Return the sole native cache composition, refusing ambiguous placement.

Source code in src/symfonic/agent/facade_cache.py
def cache_composition_for(capabilities: Sequence[Any]) -> Any | None:
    """Return the sole native cache composition, refusing ambiguous placement."""
    composition = sys.modules.get(_COMPOSITION_MODULE)
    if composition is None:
        return None
    policy_type = composition.NativeCacheComposition
    policies = tuple(
        capability for capability in capabilities
        if isinstance(capability, policy_type)
    )
    if len(policies) > 1:
        raise ConfigurationError(
            "Agent(capabilities=...) accepts at most one NativeCacheComposition; "
            "history and manifest markers need one authoritative placement policy."
        )
    return policies[0] if policies else None