Skip to content

Commit

Permalink
bpo-39825: Fixes sysconfig.get_config_var('EXT_SUFFIX') on Windows to…
Browse files Browse the repository at this point in the history
… match distutils (GH-22088)

(cherry picked from commit c0afb7f)

Co-authored-by: Matti Picus <matti.picus@gmail.com>
  • Loading branch information
miss-islington and mattip committed Dec 7, 2020
1 parent a4e7d5f commit ca52aa3
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Lib/sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -426,10 +426,11 @@ def _init_posix(vars):
def _init_non_posix(vars):
"""Initialize the module as appropriate for NT"""
# set basic install directories
import _imp
vars['LIBDEST'] = get_path('stdlib')
vars['BINLIBDEST'] = get_path('platstdlib')
vars['INCLUDEPY'] = get_path('include')
vars['EXT_SUFFIX'] = '.pyd'
vars['EXT_SUFFIX'] = _imp.extension_suffixes()[0]
vars['EXE'] = '.exe'
vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT
vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable))
Expand Down
4 changes: 3 additions & 1 deletion Lib/test/test_sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,10 +358,12 @@ def test_SO_value(self):

@unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None,
'EXT_SUFFIX required for this test')
def test_SO_in_vars(self):
def test_EXT_SUFFIX_in_vars(self):
import _imp
vars = sysconfig.get_config_vars()
self.assertIsNotNone(vars['SO'])
self.assertEqual(vars['SO'], vars['EXT_SUFFIX'])
self.assertEqual(vars['EXT_SUFFIX'], _imp.extension_suffixes()[0])

@unittest.skipUnless(sys.platform == 'linux' and
hasattr(sys.implementation, '_multiarch'),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Windows: Change ``sysconfig.get_config_var('EXT_SUFFIX')`` to the expected
full ``platform_tag.extension`` format. Previously it was hard-coded to
``.pyd``, now it is compatible with ``distutils.sysconfig`` and will result
in something like ``.cp38-win_amd64.pyd``. This brings windows into
conformance with the other platforms.

0 comments on commit ca52aa3

Please sign in to comment.