https://github.com/python/cpython/commit/e52ab564da84540a7544cb829f262b0154efccae
commit: e52ab564da84540a7544cb829f262b0154efccae
branch: main
author: Filipe Laíns 🇵🇸 <[email protected]>
committer: FFY00 <[email protected]>
date: 2025-01-20T21:25:14Z
summary:
GH-92897: schedule the check_home deprecation to 3.15 (#129102)
files:
A Misc/NEWS.d/next/Library/2025-01-20-20-59-26.gh-issue-92897.G0xH8o.rst
M Doc/deprecations/pending-removal-in-3.15.rst
M Lib/sysconfig/__init__.py
M Lib/test/test_sysconfig.py
diff --git a/Doc/deprecations/pending-removal-in-3.15.rst
b/Doc/deprecations/pending-removal-in-3.15.rst
index 3b03e1f49e6754..390bbff2835cf8 100644
--- a/Doc/deprecations/pending-removal-in-3.15.rst
+++ b/Doc/deprecations/pending-removal-in-3.15.rst
@@ -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.
diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py
index 86dd391aa173b5..3c3c9796ec3307 100644
--- a/Lib/sysconfig/__init__.py
+++ b/Lib/sysconfig/__init__.py
@@ -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
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
index a5676027eb7438..1002d90074599a 100644
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -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()
diff --git
a/Misc/NEWS.d/next/Library/2025-01-20-20-59-26.gh-issue-92897.G0xH8o.rst
b/Misc/NEWS.d/next/Library/2025-01-20-20-59-26.gh-issue-92897.G0xH8o.rst
new file mode 100644
index 00000000000000..632ca03bbf8dd2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-01-20-20-59-26.gh-issue-92897.G0xH8o.rst
@@ -0,0 +1,2 @@
+Scheduled the deprecation of the ``check_home`` argument of
+:func:`sysconfig.is_python_build` to Python 3.15.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]