[New-bugs-announce] [issue39683] 2to3 fix_exitfunc suggests duplicated import of atexit module

ilya report at bugs.python.org
Tue Feb 18 21:18:46 EST 2020


New submission from ilya <palachev.ilya at yandex.ru>:

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.

----------
components: 2to3 (2.x to 3.x conversion tool)
messages: 362245
nosy: ilya
priority: normal
severity: normal
status: open
title: 2to3 fix_exitfunc suggests duplicated import of atexit module
type: behavior

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39683>
_______________________________________


More information about the New-bugs-announce mailing list