From: Benjamin Peterson Date: Tue, 5 May 2009 00:55:24 +0000 (+0000) Subject: using sys._getframe(x), where x > 0 doesnt' work on IronPython X-Git-Tag: v2.7a1~1285 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c67b03051e0c6db5057248623256f2b21e25a96;p=thirdparty%2FPython%2Fcpython.git using sys._getframe(x), where x > 0 doesnt' work on IronPython --- diff --git a/Lib/collections.py b/Lib/collections.py index 4cffca00f5c4..cac1777ecb71 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -268,9 +268,12 @@ def namedtuple(typename, field_names, verbose=False, rename=False): # For pickling to work, the __module__ variable needs to be set to the frame # where the named tuple is created. Bypass this step in enviroments where - # sys._getframe is not defined (Jython for example). - if hasattr(_sys, '_getframe'): + # sys._getframe is not defined (Jython for example) or sys._getframe is not + # defined for arguments greater than 0 (IronPython). + try: result.__module__ = _sys._getframe(1).f_globals.get('__name__', '__main__') + except (AttributeError, ValueError): + pass return result