]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-136355: Deprecate `-b` and `-bb` CLI flags in 3.15 (#136363)
authorsobolevn <mail@sobolevn.me>
Sun, 14 Sep 2025 17:00:03 +0000 (20:00 +0300)
committerGitHub <noreply@github.com>
Sun, 14 Sep 2025 17:00:03 +0000 (20:00 +0300)
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Doc/c-api/init_config.rst
Doc/using/cmdline.rst
Doc/whatsnew/3.15.rst
Misc/NEWS.d/next/C_API/2025-09-14-14-44-24.gh-issue-136355.LCaYyC.rst [new file with mode: 0644]
Misc/NEWS.d/next/Core_and_Builtins/2025-07-07-12-24-00.gh-issue-136355.MTcA8j.rst [new file with mode: 0644]
Python/initconfig.c

index 4f0199838e151d5fdb6f780e377f15243e0c78b8..b20495e672dd75ac0bc97f48195f8c738673150f 100644 (file)
@@ -1278,6 +1278,11 @@ PyConfig
 
       Default: ``0``.
 
+      .. deprecated-removed:: 3.15 3.17
+
+         The :option:`-b` and :option:`!-bb` options will become no-op in 3.17.
+         :c:member:`~PyConfig.bytes_warning` member will be removed in 3.17.
+
    .. c:member:: int warn_default_encoding
 
       If non-zero, emit a :exc:`EncodingWarning` warning when :class:`io.TextIOWrapper`
index 448f2725e9a3dbee9258c44fd2d52a2a102c58b0..3f8b52e2345b25ff27b1e3c00c3414040663cbb3 100644 (file)
@@ -254,6 +254,15 @@ Miscellaneous options
    .. versionchanged:: 3.5
       Affects also comparisons of :class:`bytes` with :class:`int`.
 
+   .. deprecated:: 3.15
+
+      Deprecate :option:`-b` and :option:`!-bb` command line options
+      and schedule them to become no-op in Python 3.17.
+      These were primarily helpers for the Python 2 -> 3 transition.
+      Starting with Python 3.17, no :exc:`BytesWarning` will be raised
+      for these cases; use a type checker instead.
+
+
 .. option:: -B
 
    If given, Python won't try to write ``.pyc`` files on the
index 1d029e3914baf5014dc2144c9508d983b2717f80..9031301989e39617eb70fb4bb34823d242dd3d93 100644 (file)
@@ -537,6 +537,17 @@ module_name
 Deprecated
 ==========
 
+CLI
+---
+
+* Deprecate :option:`-b` and :option:`!-bb` command line options
+  and schedule them to become no-op in Python 3.17.
+  These were primarily helpers for the Python 2 -> 3 transition.
+  Starting with Python 3.17, no :exc:`BytesWarning` will be raised
+  for these cases; use a type checker instead.
+
+  (Contributed by Nikita Sobolev in :gh:`136355`.)
+
 hashlib
 -------
 
@@ -775,6 +786,10 @@ Deprecated C APIs
   :c:func:`_Py_c_abs` are :term:`soft deprecated`.
   (Contributed by Sergey B Kirpichev in :gh:`128813`.)
 
+* :c:member:`~PyConfig.bytes_warning` is deprecated
+  since 3.15 and will be removed in 3.17.
+  (Contributed by Nikita Sobolev in :gh:`136355`.)
+
 
 .. Add C API deprecations above alphabetically, not here at the end.
 
diff --git a/Misc/NEWS.d/next/C_API/2025-09-14-14-44-24.gh-issue-136355.LCaYyC.rst b/Misc/NEWS.d/next/C_API/2025-09-14-14-44-24.gh-issue-136355.LCaYyC.rst
new file mode 100644 (file)
index 0000000..4453772
--- /dev/null
@@ -0,0 +1,2 @@
+Deprecate :c:member:`PyConfig.bytes_warning` field and schedule its removal
+in 3.17.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-07-07-12-24-00.gh-issue-136355.MTcA8j.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-07-07-12-24-00.gh-issue-136355.MTcA8j.rst
new file mode 100644 (file)
index 0000000..dd6bd28
--- /dev/null
@@ -0,0 +1,2 @@
+Deprecate :option:`-b` and :option:`!-bb` command line options
+and schedule them to become no-op in Python 3.17.
index efb276ac680ed97de9b7adc0174d936f03c7fc0e..5dc68eb4ec2cca90633fdaff1a52081d87295685 100644 (file)
@@ -258,6 +258,7 @@ static const char usage_help[] = "\
 Options (and corresponding environment variables):\n\
 -b     : issue warnings about converting bytes/bytearray to str and comparing\n\
          bytes/bytearray with str or bytes with int. (-bb: issue errors)\n\
+         deprecated since 3.15 and will become no-op in 3.17.\n\
 -B     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x\n\
 -c cmd : program passed in as string (terminates option list)\n\
 -d     : turn on parser debugging output (for experts only, only works on\n\