Skip to content

Commit e3fc197

Browse files
committed
Add extra param stack_offset for fetching correct frames
1 parent ee93519 commit e3fc197

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

Lib/collections/__init__.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ def __ror__(self, other):
361361
_nmtuple_classcell_sentinel = object()
362362

363363
def _namedtuple(typename, field_names, *, rename=False, defaults=None, module=None,
364-
classcell=_nmtuple_classcell_sentinel):
364+
classcell=_nmtuple_classcell_sentinel, stack_offset=1):
365365
# Validate the field names. At the user's option, either generate an error
366366
# message or automatically replace the field name with a valid name.
367367
if isinstance(field_names, str):
@@ -507,10 +507,10 @@ def __getnewargs__(self):
507507
# specified a particular module.
508508
if module is None:
509509
try:
510-
module = _sys._getframemodulename(1) or '__main__'
510+
module = _sys._getframemodulename(stack_offset) or '__main__'
511511
except AttributeError:
512512
try:
513-
module = _sys._getframe(1).f_globals.get('__name__', '__main__')
513+
module = _sys._getframe(stack_offset).f_globals.get('__name__', '__main__')
514514
except (AttributeError, ValueError):
515515
pass
516516
if module is not None:
@@ -541,7 +541,8 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
541541
Point(x=100, y=22)
542542
543543
"""
544-
return _namedtuple(typename, field_names, rename=rename, defaults=defaults, module=module)
544+
return _namedtuple(typename, field_names, rename=rename, defaults=defaults, module=module,
545+
stack_offset=2)
545546

546547
########################################################################
547548
### Counter

0 commit comments

Comments
 (0)