[Python-Dev] PyPy, Jython, & IronPython: Enum convenience function and pickleablity

Jeff Hardy jdhardy at gmail.com
Fri May 3 01:08:01 CEST 2013

On Thu, May 2, 2013 at 1:18 PM, fwierzbicki at gmail.com
<fwierzbicki at gmail.com> wrote:
> On Thu, May 2, 2013 at 12:07 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> In order for the Enum convenience function to be pickleable, we have this
>> line of code in the metaclass:
>>     enum_class.__module__ = sys._getframe(1).f_globals['__name__']
>> This works fine for Cpython, but what about the others?
> This should work for Jython, but I can't say I like it. I believe
> IronPython has a sort of speedup mode that disallows the use of
> _getframe, and I'd like to add this to Jython someday.

It's not just a "speedup mode", it's the default. IronPython requires
frames to explicitly enabled because tracking them is about a 10%
performance hit (or so Dino told me once upon a time).

If you must use it, please copy the code block from namedtuple that
ignores it on IronPython.

- Jeff

More information about the Python-Dev mailing list