[IPython-dev] ipipe news
Torsten Marek
shlomme at gmx.net
Wed Mar 8 11:56:07 EST 2006
Fernando Perez schrieb:
> Walter Dörwald wrote:
>
>
>>I see: ipipe uses a new feature of eval() that makes it possible to pass
>>a custom (non-dict) namespace. This makes it possible to directly
>>reference the attributes of the object. For 2.3 compatibility I see
>>several options:
>>
>>1) Simply don't allow expression strings. This would only allow
>>callables and
>> iwalk | ifilter("name.endswith('.py')") | isort("size")
>>would turn into
>> iwalk | ifilter(lambda _:_.name.endswith('.py')) | isort(lambda _:_size)
>>IMHO not so nice.
>>
>>2) Pass a simple dictionary to eval() that just contains the object
>>itself. The call would then look like this
>> iwalk | ifilter("_.name.endswith('.py')") | isort("_.size")
>>
>>3) Pass a dictionary that contains all the attributes from the list.
>>This has the disadvantage that (for iwalk etc.) there will be many
>>os.stat() calls, even if the result is never used (and you can't
>>reference attributes that are not in the field list).
>>
>>BTW, the reason why you got an empty browser was, because ifilter
>>ignores all objects where evaluating the expression raises and
>>Exception. And then the expression for isort never fails, because
>>there's nothing left to sort.
>>
>>Anyway, IMHO we should implement 2) and document the possibility to
>>directly reference attributes as a "2.4 goodie".
>
>
> That sounds like a good plan. 2.3 compatibility is important because a large
> number of installed users still have that (Mac OSX and the 'enterprise'
> versions of RedHat, amongst others) in their 'out of the box' configs. But
> it's OK if a few extra conveniences are only available for 2.4 when they they
> can't be implemented in a backport, as long as the basic functionality (like
> the example in the docstring :) work with 2.3.
>
Hi,
here's a patch for ipipe that works around the shortcomings of Python 2.3. I
don't know whether is satisfies the constraint in 3, but it works for the
examples mentioned here on the list.
best regards
Torsten
--
Torsten Marek <shlomme at gmx.net>
ID: A244C858 -- FP: 1902 0002 5DFC 856B F146 894C 7CC5 451E A244 C858
Keyserver: subkeys.pgp.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: python2.3-eval-workaround.patch
Type: text/x-patch
Size: 730 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20060308/98b812eb/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20060308/98b812eb/attachment.sig>
More information about the IPython-dev
mailing list