[PEAK] Laziness, terminology, and the Trellis API
Phillip J. Eby
pje at telecommunity.com
Thu Mar 13 23:35:03 EDT 2008
At 03:04 AM 3/14/2008 +0200, Sergey Schetinin wrote:
>Looks very reasonable to me. One thing that seems to missing is API
>to declare non-method observers, one can just create a Cell, but
>then you need to get a value once to initialize the dependencies and
>you still have to think about keeping a reference. Maybe it's a bad
>idea but I keep creating rules from closures, so I created a
>decorator to make it easier, maybe it's good enough to include in the core API:
>
>from peak.events.trellis import Cell
>
>__all__ = ['rule_for']
>
>def rule_for(ob):
> add = ob.__dict__.setdefault(rule_for, []).append
> def deco(m):
> cell = Cell(m)
> cell.value
> add(cell)
> return m
> return deco
>
>
>To be used like this:
>
>...
>def track_status(self, status):
> @rule_for(status)
> def onstatus():
> status.set(self.process.status)
I would just use an AddOn with a rule, myself. See the AddOns
library in the Cheeseshop.
More information about the PEAK
mailing list