Skip to content
Snippets Groups Projects
Commit a4709bc2 authored by Radek Hušek's avatar Radek Hušek
Browse files

drop unused track_origins parameter

parent da706975
Branches
No related tags found
No related merge requests found
......@@ -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
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment