bpo-43766: Fix TypeGuard docs (#25660)

This commit is contained in:
Ken Jin 2021-04-27 23:55:08 +08:00 committed by GitHub
parent 05ab4b60ab
commit 99fdd78200
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 8 deletions

View 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).

View 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]``.

Can't render this file because it contains an unexpected character in line 348 and column 55.