GH-129064: deprecate sysconfig.expand_makefile_vars (#129082)

This commit is contained in:
Filipe Laíns 🇵🇸 2025-01-20 17:03:44 +00:00 committed by GitHub
parent 38a9956876
commit 0a6412f9cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 36 additions and 0 deletions

View file

@ -80,6 +80,12 @@ Pending removal in Python 3.16
has been deprecated since Python 3.13.
Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment variable instead.
* :mod:`sysconfig`:
* The ``~sysconfig.expand_makefile_vars`` function
has been deprecated since Python 3.14.
Use the ``vars`` argument of :func:`sysconfig.get_paths` instead.
* :mod:`tarfile`:
* The undocumented and unused :attr:`!TarFile.tarfile` attribute

View file

@ -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_]*)\)"

View file

@ -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()

View file

@ -0,0 +1,2 @@
Deprecate ``sysconfig.expand_makefile_vars``, in favor of using
:func:`sysconfig.get_paths` with the ``vars`` argument.