Issue 39683: 2to3 fix_exitfunc suggests duplicated import of atexit module
Consider the following code:
import sys
def foo():
print(1)
def bar():
print(2)
if input("case: ") == 1:
sys.exitfunc = foo
else:
sys.exitfunc = bar
2to3 -f exitfunc suggests to fix it as follows:
--- a.py (original)
+++ a.py (refactored)
@@ -1,4 +1,6 @@
import sys
+import atexit
+import atexit
def foo():
print(1)
@@ -7,6 +9,6 @@
print(2)
if input("case: ") == 1:
- sys.exitfunc = foo
+ atexit.register(foo)
else:
- sys.exitfunc = bar
+ atexit.register(bar)
So it seems that it produces one import of atexit module per each use of sys.exitfunc.