Skip to content

Commit de146e3

Browse files
committed
DROP(netop): don't topo-sort before merging ...
so as to accept graph with cycles in the future.
1 parent 72773fb commit de146e3

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

graphtik/netop.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ def compose(
309309
for op in operations:
310310
if isinstance(op, NetworkOperation):
311311
# TODO: do we really need sorting ops when merging?
312-
netop_nodes = nx.topological_sort(op.net.graph)
312+
netop_nodes = op.net.graph
313313
merge_set.update(
314314
# If merge is desired, set will deduplicate operations
315315
s if merge else

test/test_graphtik.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ def test_network_simple_merge():
247247
assert (
248248
repr(net3)
249249
== "NetworkOperation('merged', needs=['a', 'b', 'sum1', 'c', 'd', 'e', 'f'], "
250-
"provides=['sum2', 'sum1', 'sum3', 'a', 'b'], x5ops)"
250+
"provides=['sum1', 'sum2', 'sum3', 'a', 'b'], x5ops)"
251251
)
252252

253253

@@ -281,12 +281,12 @@ def test_network_deep_merge():
281281
)
282282

283283
net3 = compose("merged", net1, net2, merge=True)
284-
exp = {"a": 1, "b": 2, "c": 4, "sum1": 3, "sum2": 3, "sum3": 7}
284+
exp = {"a": 1, "b": 2, "c": 4, "sum1": 3, "sum2": 5, "sum3": 7}
285285
assert net3(a=1, b=2, c=4) == exp
286286

287287
assert (
288288
repr(net3)
289-
== "NetworkOperation('merged', needs=[optional('a'), 'b', 'sum1', 'c'], provides=['sum2', 'sum1', 'sum3'], x4ops)"
289+
== "NetworkOperation('merged', needs=[optional('a'), 'b', 'sum1', 'c'], provides=['sum1', 'sum2', 'sum3'], x4ops)"
290290
)
291291

292292
## Reverse ops, change results and `needs` optionality.

0 commit comments

Comments
 (0)