[Zope-dev] ZPatterns bug with patch

Phillip J. Eby pje@telecommunity.com
Sun, 27 Aug 2000 10:46:42 -0500


At 10:22 AM 8/27/00 +0100, Steve Alexander wrote:
>
>I've fixed this by adding a test to the start of __set_attr__ of
>DataSkins.py:
>
>    def __set_attr__(self,name,val,_v_dm_=_v_dm_):
>+       if name=='id' and val==self.__dict__['id']:
>+           return
>        dm = self.__dict__[_v_dm_]

This looks reasonable, and backward-compatible, since __init__ guarantees
the dict will have an id.  I'm not thrilled with adding more overhead to
attribute setting, however, so I'll probably do it like this:

try:
    dm = self.__dict__[_v_dm_]
except KeyError:
    if name=='id' and val==self.__dict__['id']: return
    raise

Hopefully this should only perform the extra computations when the first
part fails...