]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-126676: Expand argparse docs for type=bool with warning and alternatives (#146435)
authorJoshua Swanson <22283299+joshuaswanson@users.noreply.github.com>
Fri, 3 Apr 2026 18:07:03 +0000 (20:07 +0200)
committerGitHub <noreply@github.com>
Fri, 3 Apr 2026 18:07:03 +0000 (18:07 +0000)
Co-authored-by: joshuaswanson <joshuaswanson@users.noreply.github.com>
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Doc/library/argparse.rst
Misc/NEWS.d/next/Documentation/2026-03-25-00-00-00.gh-issue-126676.052336.rst [new file with mode: 0644]

index 5a463ee9821d6119af79ad86b64b60dcec3a083a..8ba11b7d12d552c7a5aed664d2f4fd7c73eafdf1 100644 (file)
@@ -1118,7 +1118,15 @@ User defined functions can be used as well:
 
 The :func:`bool` function is not recommended as a type converter.  All it does
 is convert empty strings to ``False`` and non-empty strings to ``True``.
-This is usually not what is desired.
+This is usually not what is desired::
+
+   >>> parser = argparse.ArgumentParser()
+   >>> _ = parser.add_argument('--verbose', type=bool)
+   >>> parser.parse_args(['--verbose', 'False'])
+   Namespace(verbose=True)
+
+See :class:`BooleanOptionalAction` or ``action='store_true'`` for common
+alternatives.
 
 In general, the ``type`` keyword is a convenience that should only be used for
 simple conversions that can only raise one of the three supported exceptions.
diff --git a/Misc/NEWS.d/next/Documentation/2026-03-25-00-00-00.gh-issue-126676.052336.rst b/Misc/NEWS.d/next/Documentation/2026-03-25-00-00-00.gh-issue-126676.052336.rst
new file mode 100644 (file)
index 0000000..d2e275f
--- /dev/null
@@ -0,0 +1,2 @@
+Expand :mod:`argparse` documentation for ``type=bool`` with a demonstration
+of the surprising behavior and pointers to common alternatives.