# where the named tuple is created. Bypass this step in enviroments where
# sys._getframe is not defined (Jython for example).
if hasattr(_sys, '_getframe'):
- result.__module__ = _sys._getframe(1).f_globals['__name__']
+ result.__module__ = _sys._getframe(1).f_globals.get('__name__', '__main__')
return result
globs = globs.copy()
if extraglobs is not None:
globs.update(extraglobs)
+ if '__name__' not in globs:
+ globs['__name__'] = '__main__' # provide a default module name
# Recursively expore `obj`, extracting DocTests.
tests = []
globs = globs.copy()
if extraglobs is not None:
globs.update(extraglobs)
+ if '__name__' not in globs:
+ globs['__name__'] = '__main__'
if raise_on_error:
runner = DebugRunner(verbose=verbose, optionflags=optionflags)
operator module; use the abstract base classes instead. Also removed
the repeat() function; use mul() instead.
+- Issue 5021: doctest.testfile() did not create __name__ and
+ collections.namedtuple() relied on __name__ being defined.
+
+- Backport importlib from Python 3.1. Only the import_module() function has
+ been backported to help facilitate transitions from 2.7 to 3.1.
+
- Issue #1885: distutils. When running sdist with --formats=tar,gztar
the tar file was overriden by the gztar one.