Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Lib/sysconfig/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -716,6 +716,15 @@ def expand_makefile_vars(s, vars):
variable expansions; if 'vars' is the output of 'parse_makefile()',
you're fine. Returns a variable-expanded version of 's'.
"""

import warnings
warnings.warn(
'sysconfig.expand_makefile_vars is deprecated and will be removed in '
'Python 3.16. Use sysconfig.get_paths(vars=...) instead.',
DeprecationWarning,
stacklevel=2,
)

import re

_findvar1_rx = r"\$\(([A-Za-z][A-Za-z0-9_]*)\)"
Expand Down
19 changes: 19 additions & 0 deletions Lib/test/test_sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -711,5 +711,24 @@ def test_parse_makefile(self):
})


class DeprecationTests(unittest.TestCase):
def deprecated(self, removal_version, deprecation_msg=None, attribute_msg=None):
if sys.version_info >= removal_version:
return self.assertRaises(AttributeError, msg=attribute_msg)
else:
return self.assertWarns(DeprecationWarning, msg=deprecation_msg)

def test_expand_makefile_vars(self):
with self.deprecated(
removal_version=(3, 16),
deprecation_msg=(
'sysconfig.expand_makefile_vars is deprecated and will be removed in '
'Python 3.16. Use sysconfig.get_paths(vars=...) instead.',
),
attribute_msg="module 'sysconfig' has no attribute 'expand_makefile_vars'",
):
sysconfig.expand_makefile_vars('', {})


if __name__ == "__main__":
unittest.main()
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Deprecate :func:`sysconfig.expand_makefile_vars`, in favor of using
:func:`sysconfig.get_paths` with the ``vars`` argument.
Loading