diff options
author | Zackery Spytz <zspytz@gmail.com> | 2019-05-30 11:08:24 (GMT) |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2019-05-30 11:08:24 (GMT) |
commit | 249b7d59d8038f9017fc95dc28a3ce3494aaf832 (patch) | |
tree | c7df4d0c071aa6dfda7086c87a6c5ecc176e1bc7 | |
parent | c145f3bfbe80d498d40848450d4d33c14e2cf782 (diff) | |
download | cpython-249b7d59d8038f9017fc95dc28a3ce3494aaf832.zip cpython-249b7d59d8038f9017fc95dc28a3ce3494aaf832.tar.gz cpython-249b7d59d8038f9017fc95dc28a3ce3494aaf832.tar.bz2 |
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.
-rw-r--r-- | Lib/test/test_sys.py | 16 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Core and Builtins/2018-07-04-16-57-59.bpo-20602.sDLElw.rst | 2 | ||||
-rw-r--r-- | Python/import.c | 2 |
3 files changed, 18 insertions, 2 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index c558d11..49f2722 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -822,6 +822,22 @@ class SysModuleTest(unittest.TestCase): rc, stdout, stderr = assert_python_ok('-c', code) 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'), 'need sys.getandroidapilevel()') def test_getandroidapilevel(self): diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-07-04-16-57-59.bpo-20602.sDLElw.rst b/Misc/NEWS.d/next/Core and Builtins/2018-07-04-16-57-59.bpo-20602.sDLElw.rst new file mode 100644 index 0000000..ab37a02 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2018-07-04-16-57-59.bpo-20602.sDLElw.rst @@ -0,0 +1,2 @@ +Do not clear :data:`sys.flags` and :data:`sys.float_info` during shutdown. +Patch by Zackery Spytz. diff --git a/Python/import.c b/Python/import.c index 41a5c01..ab7db6b 100644 --- a/Python/import.c +++ b/Python/import.c @@ -383,8 +383,6 @@ static const char * const sys_deletes[] = { "last_type", "last_value", "last_traceback", "path_hooks", "path_importer_cache", "meta_path", "__interactivehook__", - /* misc stuff */ - "flags", "float_info", NULL }; |