Re: Re: trellis.Set.discard
"Sergey Schetinin" <[email protected]>
| Newsgroups | gmane.comp.python.peak |
|---|---|
| Message-ID | <[email protected]> |
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.