def __init__(self, dg): self.dg = BidirectionalDAG(dg) self.might_merge = set(dg) self.sig_replacements = {} self.sig2ops = WeakKeyDefaultDict(WeakSet) self.base2views = WeakKeyDefaultDict(WeakSet) for op in self.dg.forward: for s in op.all_signals: self.sig2ops[s].add(op) self.base2views[s.base].add(s) # These variables will be initialized and used on each pass self.dependents = None self.only_merge_ops_with_view = None self.merged = set() self.merged_dependents = set() self.opinfo = OpInfo()
def test_weakkeydefaultdict(): factory = lambda: 'default' d = WeakKeyDefaultDict(factory) o = C() assert len(d) == 0 assert d[o] == 'default' d[o] = 'changed' assert len(d) == 1 assert d[o] == 'changed' del d[o] assert len(d) == 0 assert o not in d d[o] = 'changed' del o assert len(d) == 0
def test_weakkeydefaultdict(): factory = lambda: "default" d = WeakKeyDefaultDict(factory) o = C() assert len(d) == 0 assert d[o] == "default" d[o] = "changed" assert len(d) == 1 assert d[o] == "changed" del d[o] assert len(d) == 0 assert o not in d d[o] = "changed" for index in d: assert index == o del index del o assert len(d) == 0
def test_weakkeydefaultdict(): factory = lambda: "default" d = WeakKeyDefaultDict(factory) o = C() assert len(d) == 0 assert d[o] == "default" d[o] = "changed" assert len(d) == 1 assert d[o] == "changed" del d[o] assert len(d) == 0 assert o not in d d[o] = "changed" for index in d: assert index == o del index # pylint: disable=undefined-loop-variable del o assert len(d) == 0