]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-43766: Fix TypeGuard docs (#25660)
authorKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Tue, 27 Apr 2021 15:55:08 +0000 (23:55 +0800)
committerGitHub <noreply@github.com>
Tue, 27 Apr 2021 15:55:08 +0000 (08:55 -0700)
Doc/library/typing.rst
Doc/tools/susp-ignored.csv

index cb9ba4599d7eafd8204f80dd533ae53de8bce0ac..8b1ce34d98ec66015ab9f6ac82c28a320642d6ed 100644 (file)
@@ -974,10 +974,10 @@ These can be used as types in annotations using ``[]``, each having a unique syn
 
          def func1(val: List[object]):
              if is_str_list(val):
-                 # Type of ``val`` is narrowed to List[str]
+                 # Type of ``val`` is narrowed to ``List[str]``.
                  print(" ".join(val))
              else:
-                 # Type of ``val`` remains as List[object]
+                 # Type of ``val`` remains as ``List[object]``.
                  print("Not a list of strings!")
 
    If ``is_str_list`` is a class or instance method, then the type in
@@ -994,12 +994,7 @@ These can be used as types in annotations using ``[]``, each having a unique syn
       wider form. The main reason is to allow for things like
       narrowing ``List[object]`` to ``List[str]`` even though the latter
       is not a subtype of the former, since ``List`` is invariant.
-      The responsibility of
-      writing type-safe type guards is left to the user.  Even if
-      the type guard function passes type checks, it may still fail at runtime.
-      The type guard function may perform erroneous checks and return wrong
-      booleans.  Consequently, the type it promises in ``TypeGuard[TypeB]`` may
-      not hold.
+      The responsibility of writing type-safe type guards is left to the user.
 
    ``TypeGuard`` also works with type variables.  For more information, see
    :pep:`647` (User-Defined Type Guards).
index b9e10678d46486efd55636100874b3fa7b0ccd92..5a2d85d262b2e7892d3e46db3e83ce825fb7f162 100644 (file)
@@ -370,3 +370,7 @@ library/importlib.metadata,,:main,"EntryPoint(name='wheel', value='wheel.cli:mai
 library/importlib.metadata,,`,loading the metadata for packages for the indicated ``context``.
 library/re,,`,"`"
 using/configure,84,:db2,=db1:db2:...
+library/typing,1004,`,# Type of ``val`` is narrowed to ``str``
+library/typing,1004,`,"# Else, type of ``val`` is narrowed to ``float``."
+library/typing,1004,`,# Type of ``val`` is narrowed to ``List[str]``.
+library/typing,1004,`,# Type of ``val`` remains as ``List[object]``.