diff --git a/src/in_n_out/_store.py b/src/in_n_out/_store.py index 3915bd1..e115ec9 100644 --- a/src/in_n_out/_store.py +++ b/src/in_n_out/_store.py @@ -802,7 +802,16 @@ def _exec(*args: P.args, **kwargs: P.kwargs) -> R: _injected_names, ) try: + path = [] + for k, v in bound.arguments.items(): + if hasattr(v, "_path"): + v._path.append(k) + v._path.insert(0, path) + else: + v._path = [path, k] result = func(**bound.arguments) + if result is not None: + result._path = path except TypeError as e: if "missing" not in e.args[0]: raise # pragma: no cover