bpo-20602: Do not clear sys.flags and sys.float_info during shutdown (GH-8096)

There is no need to clear these immutable objects during shutdown.
This commit is contained in:
Zackery Spytz 2019-05-30 05:08:24 -06:00 committed by Petr Viktorin
parent c145f3bfbe
commit 249b7d59d8
3 changed files with 18 additions and 2 deletions

View File

@ -822,6 +822,22 @@ class SysModuleTest(unittest.TestCase):
rc, stdout, stderr = assert_python_ok('-c', code) rc, stdout, stderr = assert_python_ok('-c', code)
self.assertEqual(stdout.rstrip(), b'True') self.assertEqual(stdout.rstrip(), b'True')
@test.support.requires_type_collecting
def test_issue20602(self):
# sys.flags and sys.float_info were wiped during shutdown.
code = """if 1:
import sys
class A:
def __del__(self, sys=sys):
print(sys.flags)
print(sys.float_info)
a = A()
"""
rc, out, err = assert_python_ok('-c', code)
out = out.splitlines()
self.assertIn(b'sys.flags', out[0])
self.assertIn(b'sys.float_info', out[1])
@unittest.skipUnless(hasattr(sys, 'getandroidapilevel'), @unittest.skipUnless(hasattr(sys, 'getandroidapilevel'),
'need sys.getandroidapilevel()') 'need sys.getandroidapilevel()')
def test_getandroidapilevel(self): def test_getandroidapilevel(self):

View File

@ -0,0 +1,2 @@
Do not clear :data:`sys.flags` and :data:`sys.float_info` during shutdown.
Patch by Zackery Spytz.

View File

@ -383,8 +383,6 @@ static const char * const sys_deletes[] = {
"last_type", "last_value", "last_traceback", "last_type", "last_value", "last_traceback",
"path_hooks", "path_importer_cache", "meta_path", "path_hooks", "path_importer_cache", "meta_path",
"__interactivehook__", "__interactivehook__",
/* misc stuff */
"flags", "float_info",
NULL NULL
}; };