diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index 776b2f64045..c4f7cab1743 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -409,6 +409,10 @@ def _init_posix(vars): # _sysconfigdata is generated at build time, see _generate_posix_vars() from _sysconfigdata import build_time_vars vars.update(build_time_vars) + # For backward compatibility, see issue19555 + SO = build_time_vars.get('EXT_SUFFIX') + if SO is not None: + vars['SO'] = SO def _init_non_posix(vars): """Initialize the module as appropriate for NT""" @@ -579,6 +583,9 @@ def get_config_var(name): Equivalent to get_config_vars().get(name) """ + if name == 'SO': + import warnings + warnings.warn('SO is deprecated, use EXT_SUFFIX', DeprecationWarning) return get_config_vars().get(name) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 29686040ea9..5bc3f329ba2 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -369,6 +369,25 @@ class TestSysConfig(unittest.TestCase): os.chdir(cwd) self.assertEqual(srcdir, srcdir2) + @unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None, + 'EXT_SUFFIX required for this test') + def test_SO_deprecation(self): + self.assertWarns(DeprecationWarning, + sysconfig.get_config_var, 'SO') + + @unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None, + 'EXT_SUFFIX required for this test') + def test_SO_value(self): + self.assertEqual(sysconfig.get_config_var('SO'), + sysconfig.get_config_var('EXT_SUFFIX')) + + @unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None, + 'EXT_SUFFIX required for this test') + def test_SO_in_vars(self): + vars = sysconfig.get_config_vars() + self.assertIsNotNone(vars['SO']) + self.assertEqual(vars['SO'], vars['EXT_SUFFIX']) + class MakefileTests(unittest.TestCase): diff --git a/Misc/NEWS b/Misc/NEWS index d6158d84b73..295b456171d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -59,6 +59,9 @@ Core and Builtins Library ------- +- Issue #19555: Restore sysconfig.get_config_var('SO'), with a + DeprecationWarning pointing people at $EXT_SUFFIX. + - Issue #8813: Add SSLContext.verify_flags to change the verification flags of the context in order to enable certification revocation list (CRL) checks or strict X509 rules.