[PEAK] Re: trellis.Set.discard

Sergey Schetinin maluke at gmail.com
Tue Oct 21 13:58:00 EDT 2008


Hahaha... I found out that my problems with reproducing some of the
issues are because I forgot that I fixed them with this (there goes
explicitness of side-txn =)):

from peak.rules import around

@around(CellAttribute.make_cell.im_func)
def make_cell(next_method, self, typ, ob, name):
    if ctrl.readonly:
        return side_txn(next_method, self, typ, ob, name)
    else:
        return next_method(self, typ, ob, name)



Here's another test:

class C1(Component):
    x = attr()

    @maintain
    def rule(self):
        self.x = 1

class C2(Component):
    c1 = make(C1)

    @compute
    def calc(self):
        return self.c1.x


c = C2()
c.calc

@make is triggered inside compute, so C1.rule ends up running with
ctrl.readonly.



More information about the PEAK mailing list