Re: Trellis shared cells

"Phillip J. Eby" <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]> Tue, 02 Dec 2008 16:52:32 -0500
Newsgroups gmane.comp.python.peak
Message-ID <[email protected]>
At 04:46 PM 12/2/2008 -0500, Phillip J. Eby wrote:
>At 11:57 AM 12/2/2008 -0800, Jeffrey Harris wrote:
>>This works fine, but it makes me uneasy.  trellis.changed is
>>undocumented, and I'm not sure this will continue to work in the future.
>>
>>If this *is* a reasonable way to work with shared cells, would it make
>>sense to make the trellis.changed call happen automatically when one
>>cell is switched out for another?
>
>Yes, I'd been thinking of doing just that (as Sergey said).
>
>But I would caution that use cases that seem to call for modifying a 
>cell in this fashion may have other, cleaner ways to be handled 
>anyway.  Perhaps you could elaborate on the use case?

I just glanced at your recent Chandler2 commit, and I think I see 
what you're using it for.  May I suggest that it might be cleaner to 
simply define the occurrence cells' formulas as something like:

  def some_attr(self):
      if 'some_attr' in self.modification_recipe.changes:
           # return modified value
      else:
           # return base value from self.master

In this way, you don't need non-local knowledge of the system in 
order to understand what's going on.

(Remember: a cell should ideally be set or calculated in only *one* place.)