from __future__ import annotations from typing import Any, TypeVar import deepmerge.merger from .core import StrategyList T = TypeVar("T") class FallbackStrategies(StrategyList): """ The StrategyList containing fallback strategies. """ NAME = "fallback" @staticmethod def strategy_override(config: deepmerge.merger.Merger, path: list, base: Any, nxt: T) -> T: """use nxt, and ignore base.""" return nxt @staticmethod def strategy_use_existing(config: deepmerge.merger.Merger, path: list, base: T, nxt: Any) -> T: """use base, and ignore next.""" return base