diff --git a/src/c3nav/editor/changes.py b/src/c3nav/editor/changes.py index 6a2eba2f..8f684767 100644 --- a/src/c3nav/editor/changes.py +++ b/src/c3nav/editor/changes.py @@ -1,3 +1,5 @@ +import operator +from functools import reduce from itertools import chain from typing import Type, Any, Optional, Annotated, Union @@ -62,6 +64,10 @@ class SingleOperationWithDependencies(BaseSchema): class MergableOperationsWithDependencies(BaseSchema): children: list[SingleOperationWithDependencies] + @property + def dependencies(self) -> set[OperationDependency]: + return reduce(operator.or_, (c.dependencies for c in self.children), set()) + OperationWithDependencies = Union[ SingleOperationWithDependencies,