From 7c67b03051e0c6db5057248623256f2b21e25a96 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Tue, 5 May 2009 00:55:24 +0000 Subject: [PATCH] using sys._getframe(x), where x > 0 doesnt' work on IronPython --- Lib/collections.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/collections.py b/Lib/collections.py index 4cffca00f5c..cac1777ecb7 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