GH-92897: schedule the check_home deprecation to 3.15 (#129102)

This commit is contained in:
Filipe Laíns 🇵🇸 2025-01-20 21:25:14 +00:00 committed by GitHub
parent 5ed5572cac
commit e52ab564da
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 33 additions and 5 deletions

View file

@ -51,6 +51,11 @@ Pending removal in Python 3.15
This function is only useful for Jython support, has a confusing API,
and is largely untested.
* :mod:`sysconfig`:
* The ``check_home`` argument of :func:`sysconfig.is_python_build` has been
deprecated since Python 3.12.
* :mod:`threading`:
* :func:`~threading.RLock` will take no arguments in Python 3.15.

View file

@ -220,8 +220,15 @@ def _safe_realpath(path):
def is_python_build(check_home=None):
if check_home is not None:
import warnings
warnings.warn("check_home argument is deprecated and ignored.",
DeprecationWarning, stacklevel=2)
warnings.warn(
(
'The check_home argument of sysconfig.is_python_build is '
'deprecated and its value is ignored. '
'It will be removed in Python 3.15.'
),
DeprecationWarning,
stacklevel=2,
)
for fn in ("Setup", "Setup.local"):
if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)):
return True

View file

@ -712,9 +712,9 @@ def test_parse_makefile(self):
class DeprecationTests(unittest.TestCase):
def deprecated(self, removal_version, deprecation_msg=None, attribute_msg=None):
def deprecated(self, removal_version, deprecation_msg=None, error=Exception, error_msg=None):
if sys.version_info >= removal_version:
return self.assertRaises(AttributeError, msg=attribute_msg)
return self.assertRaises(error, msg=error_msg)
else:
return self.assertWarns(DeprecationWarning, msg=deprecation_msg)
@ -725,10 +725,24 @@ def test_expand_makefile_vars(self):
'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'",
error=AttributeError,
error_msg="module 'sysconfig' has no attribute 'expand_makefile_vars'",
):
sysconfig.expand_makefile_vars('', {})
def test_is_python_build_check_home(self):
with self.deprecated(
removal_version=(3, 15),
deprecation_msg=(
'The check_home argument of sysconfig.is_python_build is '
'deprecated and its value is ignored. '
'It will be removed in Python 3.15.'
),
error=TypeError,
error_msg="is_python_build() takes 0 positional arguments but 1 were given",
):
sysconfig.is_python_build('foo')
if __name__ == "__main__":
unittest.main()

View file

@ -0,0 +1,2 @@
Scheduled the deprecation of the ``check_home`` argument of
:func:`sysconfig.is_python_build` to Python 3.15.