[IronPython] Frames in IronPython

Jeff Hardy jdhardy at gmail.com
Thu Jan 1 01:42:13 CET 2009


On Wed, Dec 31, 2008 at 9:07 AM, Seo Sanghyeon <sanxiyn at gmail.com> wrote:
> 2008/12/31 Jeff Hardy <jdhardy at gmail.com>:
>> I don't know what the feature list is going to be for 2.1, but I'd
>> like to see frame objects near the top. Almost every piece of Python
>> code I've tried uses them in some way. Often it's for debugging
>> purposes (and can be worked around), but not always. Trac has this
>> lovely piece of code:
>
> This is pretty sad state of affair, especially considering that such
> (like Trac's) use of getting frame local is usually unnecessary with
> a bit of metaclass.

The issue is the client interface:

class WikiModule(Component):
    implements(IContentConverter, INavigationContributor,
IPermissionRequestor, ...)

This is just an odd interface for Python to support (in Ruby it'd be
fine[1]). Something like:

class WikiModule(Component):
    implements = (IContentConverter, INavigationContributor,
IPermissionRequestor, ...)

Would be more natural, IMHO.

A little digging showed that Trac had a previously had a different
version (non-threadsafe, and some other issues[2]) that didn't use
frames but supported the same client interface. Reverting to that
allows that particular set of tests to pass, so I'll see where I can
go from here (until I need Genshi, at any rate).

A real fix would probably require changing the client interface, and I
don't know how willing they'll be to do that after just breaking it
for 0.11.

[1] http://blog.ianbicking.org/more-on-python-metaprogramming.html
[2] http://groups.google.com/group/trac-dev/browse_thread/thread/7bccf999eb3407ed?pli=1

- Jeff



More information about the Ironpython-users mailing list