Re: [Zope-dev] ZPatterns bug with patch
"Phillip J. Eby" wrote: 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... Are Python classes derived from DataSkin supposed to call DataSkin.__init__ ? Anyway, perhaps this would be a small improvement: try: dm = self.__dict__[_v_dm_] except KeyError: if (name=='id' and self.__dict__.has_key('id') and val==self.__dict__['id']): return raise -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] ZPatterns bug with patch
"Phillip J. Eby" wrote: 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... Are Python classes derived from DataSkin supposed to call DataSkin.__init__ ? Anyway, perhaps this would be a small improvement: try: dm = self.__dict__[_v_dm_] except KeyError: if (name=='id' and self.__dict__.has_key('id') and val==self.__dict__['id']): return raise What rubbish! I didn't mean that at all! I think what I meant was this: try: dm = self.__dict__[_v_dm_] except KeyError: if name=='id': if self.__dict__.has_key('id') and val==self.__dict__.['id']: return else: self.__dict__['id']=val return raise -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] ZPatterns bug with patch
Steve Alexander wrote: What rubbish! I didn't mean that at all! I think what I meant was this: try: dm = self.__dict__[_v_dm_] except KeyError: if name=='id': if self.__dict__.has_key('id') and val==self.__dict__.['id']: return else: self.__dict__['id']=val return raise I think what I *really* meant was this: try: dm = self.__dict__[_v_dm_] except KeyError: if name=='id': if self.__dict__.has_key('id') and val==self.__dict__['id']: return else: self.__dict__['id']=val self._p_changed = 1 return raise -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] ZPatterns bug with patch
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... ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )