From a4709bc202022991eb70e173f944c00962361758 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radek=20Hu=C5=A1ek?= <husek@iuuk.mff.cuni.cz>
Date: Tue, 1 Feb 2022 15:03:07 +0100
Subject: [PATCH] drop unused track_origins parameter

---
 graph_tools/base.py | 45 ++++++++++++---------------------------------
 1 file changed, 12 insertions(+), 33 deletions(-)

diff --git a/graph_tools/base.py b/graph_tools/base.py
index 9693fbe..a827059 100644
--- a/graph_tools/base.py
+++ b/graph_tools/base.py
@@ -11,45 +11,27 @@ def _init_():
   from itertools import combinations, chain, product
   from functools import reduce
 
-  BoundaryValue = namedtuple("BoundaryValue", ['boundary', 'value', 'origins'])
-  BoundaryValue.with_origins = lambda s, o: BoundaryValue(s.boundary, s.value, o)
-
-  OriginJoinEdge = namedtuple("OriginJoinEdge", ['boundary', 'e1', 'e2', 'info'])
-  OriginJoinBoundaries = namedtuple("OriginJoinBoundaries", ['boundaries', 'info'])
-  # hack compatible with Python < 3.7
-  BoundaryValue.__new__.__defaults__ = (None, None, None)
+  BoundaryValue = namedtuple("BoundaryValue", ['boundary', 'value'])
 
 
   class GraphParameterBase:
     def __hash__(self): return id(self)
     def __eq__(self, b): return self is b
 
-    def eval_join(self, multiplicity_vectors, joins, outs, offsets, track_origins):
+    def eval_join(self, multiplicity_vectors, joins, outs, offsets):
       def join_boundaries(x):
         return self.join_boundaries(x, offsets)
 
-        #for info in self.join_boundaries_info(x, offsets):
-        #  ret = self.join_boundaries(x, offsets, info)
-        #  if ret is None: continue
-        #  if track_origins: ret = ret.with_origins(OriginJoinBoundaries(x, info))
-        #  yield ret
-
       it = chain.from_iterable( join_boundaries(x) for x in product(*multiplicity_vectors) )
 
       def join(gen, e1, e2):
         for b in gen:
           yield from self.join_edges(b, e1, e2)
 
-          #for info in self.join_edges_info(b, e1, e2):
-          #  ret = self.join_edges(b, e1, e2, info)
-          #  if ret is None: continue
-          #  if track_origins: ret = ret.with_origins([ OriginJoinEdge(b, e1, e2, info) ])
-          #  yield ret
-
       for e1, e2 in joins: it = join(it, e1, e2)
 
       def project_and_canonize(b):
-        return BoundaryValue(self.project_and_canonize(outs, b.boundary), b.value, b.origins)
+        return BoundaryValue(self.project_and_canonize(outs, b.boundary), b.value)
 
       it = ( project_and_canonize(b) for b in it )
 
@@ -57,9 +39,7 @@ def _init_():
       for b in it:
         if b.boundary in ret:
           ret[b.boundary] = BoundaryValue(b.boundary,
-            self.merge_values(ret[b.boundary].value, b.value),
-            ret[b.boundary].origins + b.origins if track_origins else None
-          )
+            self.merge_values(ret[b.boundary].value, b.value))
         else:
           ret[b.boundary] = b
 
@@ -129,11 +109,10 @@ def _init_():
 
     _gadget_cache = utils.DynamicLRU()
 
-    def eval(self, p, track_origins=False, **kwargs):
+    def eval(self, p, **kwargs):
       assert self.is_graph()
-      ret = self.eval_gadget(p, track_origins=track_origins, **kwargs)
-      if not track_origins: return p.finalize(ret)
-      return (p.finalize(ret), self.enumerate(ret))
+      ret = self.eval_gadget(p, **kwargs)
+      return p.finalize(ret)
 
     @staticmethod
     def join(gadgets, joins, outs, *, no_cache=False):
@@ -151,12 +130,12 @@ def _init_():
       super().__init__(size)
       self.value = value
 
-    def eval_gadget(self, _, track_origins=None, no_cache=False):
+    def eval_gadget(self, _, no_cache=False):
       return self.value
 
 
   class BaseGadget(Gadget):
-    def eval_gadget(self, parameter, track_origins=None, no_cache=False):
+    def eval_gadget(self, parameter, no_cache=False):
       try:
         if self is CUBIC_VERTEX:
           return parameter.CUBIC_VERTEX
@@ -187,13 +166,13 @@ def _init_():
 
       self._info = (tuple(gadgets), joins, outs)
 
-    def eval_gadget(self, parameter, track_origins=False, no_cache=False):
+    def eval_gadget(self, parameter, no_cache=False):
       gadgets, joins, outs = self._info
 
       def do_eval():
         ret = parameter.eval_join(
-          [ g.eval_gadget(parameter, track_origins=track_origins, no_cache=no_cache) for g in gadgets ],
-          joins, outs, self.offsets, track_origins
+          [ g.eval_gadget(parameter, no_cache=no_cache) for g in gadgets ],
+          joins, outs, self.offsets
         )
         return ret
 
-- 
GitLab