Re: Re: Trellis + Python 2.6
"Sergey Schetinin" <[email protected]> Wed, 19 Nov 2008 01:05:46 +0200
| Newsgroups | gmane.comp.python.peak |
|---|---|
| Message-ID | <[email protected]> |
I'll have to look into using collections.MutableSet, but I won't have any time for this for a few days. Will report when done. On Wed, Nov 19, 2008 at 00:55, Sergey Schetinin <[email protected]> wrote: > Oh I'm sorry for this, I completely missed that I'm not using > trellis.Set anymore, so my checks didn't test that at all. So not > importing the sets module is completely wrong. An equivalent of > sets.Set doesn't seem to be available in py2.6 from a non-deprecated > module, so this can either be resolved by copying the relevant parts > of Set implementation into trellis or adding a > warnings.simplefilter('ignore', ...), which one would you prefer? > > On Wed, Nov 19, 2008 at 00:24, Phillip J. Eby <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]> wrote: >> I would be rather surprised if this patch is actually working correctly for >> any Python version (except ones with no built-in 'set' type). The reason >> trellis.Set inherits from sets.Set is because I rely on some of the base >> class methods to call inherited methods; it seems rather unlikely that this >> constraint is kept to by the C version of the set type. >> >> Have you tried, e.g., iterating over a Set that inherits from 'set' and >> seeing whether that actually creates a dependency on the object, for >> example? trellis.Set inherits __iter__ from its base class, expecting that >> it will iterate the ._data attribute. This would be the sort of thing I'd >> expect to fail. >> >> Hm, in fact, a quick test of your patch shows that it fails on this line >> anyway: >> >> sets.Set._update(self, iterable) >> >> Because even if you change this to a super call or use set._update, there is >> no such method on C set objects. >> >> At 11:04 PM 11/18/2008 +0200, Sergey Schetinin wrote: >>> >>> Here's the patch. I also left two more changes in: >>> - cancel the rule if assigned >>> - log undo for new Component cells >>> >>> On Tue, Nov 18, 2008 at 20:23, Sergey Schetinin <[email protected]> wrote: >>> > I've only checked with python 2.5, but it should work with others too, >>> > because it basically only chages where things are imported etc. I'll >>> > send it when I get to my desktop. >>> > >>> > On Tue, Nov 18, 2008 at 18:10, Phillip J. Eby <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]> >>> > wrote: >>> >> At 01:25 PM 11/18/2008 +0200, Sergey Schetinin wrote: >>> >>> >>> >>> > Issue 1: >>> >>> > UserList.UserList now has a metaclass, so trellis.List needs to >>> >>> > redefine its metaclass to inherit from it >>> >>> >>> >>> > Issue 2: >>> >>> > trellis.py imports `sets` module which is deprecated and results in >>> >>> > a >>> >>> > warning. >>> >>> >>> >>> Issue 3: >>> >>> >>> >>> peak\events\trellis.py:511: DeprecationWarning: object.__new__() takes >>> >>> no parameters >>> >>> return ReadOnlyCell.__new__(cls, rule, value, discrete) >>> >>> >>> >>> >>> >>> If you don't have py2.6 installed, let me know and I'll send the patch >>> >>> with relevant changes. >>> >> >>> >> Does your patch still work with older Pythons? >> >> > > > > -- > Best Regards, > Sergey Schetinin > > http://s3bk.com/ -- S3 Backup > http://word-to-html.com/ -- Word to HTML Converter > -- Best Regards, Sergey Schetinin http://s3bk.com/ -- S3 Backup http://word-to-html.com/ -- Word to HTML Converter