bpo-34336: Don't promote possibility to leave out typing.Optional (GH-8677)

(cherry picked from commit 336c945858)

Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
This commit is contained in:
Miss Islington (bot) 2018-08-05 10:22:47 -07:00 committed by GitHub
parent 2474cef34c
commit 02c4eae35c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -992,10 +992,18 @@ The module defines the following classes, functions and decorators:
Note that this is not the same concept as an optional argument,
which is one that has a default. An optional argument with a
default needn't use the ``Optional`` qualifier on its type
annotation (although it is inferred if the default is ``None``).
A mandatory argument may still have an ``Optional`` type if an
explicit value of ``None`` is allowed.
default does not require the ``Optional`` qualifier on its type
annotation just because it is optional. For example::
def foo(arg: int = 0) -> None:
...
On the other hand, if an explicit value of ``None`` is allowed, the
use of ``Optional`` is appropriate, whether the argument is optional
or not. For example::
def foo(arg: Optional[int] = None) -> None:
...
.. data:: Tuple