]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] GH-92897: schedule the check_home deprecation to 3.15 (GH-129102) (#130585)
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Thu, 27 Feb 2025 18:17:08 +0000 (20:17 +0200)
committerGitHub <noreply@github.com>
Thu, 27 Feb 2025 18:17:08 +0000 (18:17 +0000)
Co-authored-by: Filipe Laíns 🇵🇸 <lains@riseup.net>
Doc/deprecations/pending-removal-in-3.15.rst
Doc/deprecations/pending-removal-in-future.rst
Lib/sysconfig.py
Lib/test/test_sysconfig.py
Misc/NEWS.d/next/Library/2025-01-20-20-59-26.gh-issue-92897.G0xH8o.rst [new file with mode: 0644]

index 4a3014108c41757f1037b1d1fbcb79dfc278243d..ec2ef655241d8257603dbc77020a68614171105b 100644 (file)
@@ -28,6 +28,11 @@ Pending Removal in Python 3.15
   and was only useful for Jython support.
   (Contributed by Nikita Sobolev in :gh:`116349`.)
 
+* :mod:`sysconfig`:
+
+  * The *check_home* argument of :func:`sysconfig.is_python_build` has been
+    deprecated since Python 3.12.
+
 * :mod:`threading`:
   Passing any arguments to :func:`threading.RLock` is now deprecated.
   C version allows any numbers of args and kwargs,
index e1311482312cd8a3fdafe7309a4a6981b43d8cac..826dcadf20c5ecf479a9fae05ef16fd9b1bb4ace 100644 (file)
@@ -102,9 +102,6 @@ although there is currently no date scheduled for their removal.
   * ``ssl.TLSVersion.TLSv1``
   * ``ssl.TLSVersion.TLSv1_1``
 
-* :func:`sysconfig.is_python_build` *check_home* parameter is deprecated and
-  ignored.
-
 * :mod:`threading` methods:
 
   * :meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition.notify_all`.
index 7dd63b935543d61385dba1232979efd0191b577e..acc8d4d1826b8adcaa15fcdef2666e717c3ee520 100644 (file)
@@ -222,8 +222,15 @@ if "_PYTHON_PROJECT_BASE" in os.environ:
 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
index 3468d0ce022ae08e0b9047be9c77990ea4c18e29..67647e1b787ce78221a963c9540f5bc52a6a0321 100644 (file)
@@ -616,5 +616,26 @@ class MakefileTests(unittest.TestCase):
         })
 
 
+class DeprecationTests(unittest.TestCase):
+    def deprecated(self, removal_version, deprecation_msg=None, error=Exception, error_msg=None):
+        if sys.version_info >= removal_version:
+            return self.assertRaises(error, msg=error_msg)
+        else:
+            return self.assertWarns(DeprecationWarning, msg=deprecation_msg)
+
+    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 (file)
index 0000000..632ca03
--- /dev/null
@@ -0,0 +1,2 @@
+Scheduled the deprecation of the ``check_home`` argument of
+:func:`sysconfig.is_python_build` to Python 3.15.