def resolve( self, src, unwrap=True, skip_interpolation_checks=False ) -> Any: """Recursively resolves interpolation and returns resolved data. Args: src: Data (str/list/dict etc.) to resolve unwrap: Unwrap CtxDict/CtxList/Value to it's original data if inside `src`. Defaults to True. skip_interpolation_checks: Skip interpolation checks for error The callee is responsible to check for errors in advance. >>> c = Context({"three": 3}) >>> c.resolve({"lst": [1, 2, "${three}"]}) {'lst': [1, 2, 3]} """ func = recurse(self.resolve_str) return func(src, unwrap, skip_interpolation_checks)
def recurse_not_a_node(data: dict): def func(item): assert not isinstance(item, Node) return recurse(func)(data)