The sys module could be called before being imported.
__all__ = ["register"]
+import sys
+
_exithandlers = []
def _run_exitfuncs():
"""run any registered exit functions
except SystemExit:
exc_info = sys.exc_info()
except:
- import sys, traceback
+ import traceback
print >> sys.stderr, "Error in atexit._run_exitfuncs:"
traceback.print_exc()
exc_info = sys.exc_info()
"""
_exithandlers.append((func, targs, kargs))
-import sys
if hasattr(sys, "exitfunc"):
# Assume it's another registered exit function - append it to our list
register(sys.exitfunc)
sys.exitfunc = _run_exitfuncs
-del sys
if __name__ == "__main__":
def x1():
Library
-------
+- atexit.register no longer references the sys module before importing it.
+ (Bug #1083202).
+
- unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
extended or overridden by subclasses. Formerly, the subclassed method would
be ignored by the rest of the module. (Bug #1078905).