Model._get_cyclic_deps() detect cyclic dependencies among Observable and Function instances. It can report false cycles if Observable and Function instances have the same ids.
E.g., assume this network, where O stands for Observable and F for Function and the attribute is the id.
F.b -> F.a -> O.b -> O.a
Since digraph edges depend on just id in digraph.add_edge(model.id, other_model.id) this example will incorrectly report a cycle.
Model._get_cyclic_deps()
detect cyclic dependencies amongObservable
andFunction
instances. It can report false cycles ifObservable
andFunction
instances have the same ids.E.g., assume this network, where O stands for
Observable
and F forFunction
and the attribute is theid
.Since digraph edges depend on just id in
digraph.add_edge(model.id, other_model.id)
this example will incorrectly report a cycle.Fix: include the object type in the edges.