diff options
author | Vlad Serebrennikov <brainvlad@gmail.com> | 2020-04-30 01:06:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-30 01:06:39 (GMT) |
commit | 138a9b9c2a394f30f222c23391f9515a7df9d809 (patch) | |
tree | 04e0c2277414db12ea5a2acdc3cdf867f16db613 /Lib/typing.py | |
parent | b1e11c31c523dc082985e9de779ceeb47224e536 (diff) | |
download | cpython-138a9b9c2a394f30f222c23391f9515a7df9d809.zip cpython-138a9b9c2a394f30f222c23391f9515a7df9d809.tar.gz cpython-138a9b9c2a394f30f222c23391f9515a7df9d809.tar.bz2 |
bpo-40389: Improve repr of typing.Optional (#19714)
Diffstat (limited to 'Lib/typing.py')
-rw-r--r-- | Lib/typing.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Lib/typing.py b/Lib/typing.py index c829898..f3cd280 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -691,6 +691,13 @@ class _GenericAlias(_Final, _root=True): return _GenericAlias(self.__origin__, params, name=self._name, inst=self._inst) def __repr__(self): + if (self.__origin__ == Union and len(self.__args__) == 2 + and type(None) in self.__args__): + if self.__args__[0] is not type(None): + arg = self.__args__[0] + else: + arg = self.__args__[1] + return (f'typing.Optional[{_type_repr(arg)}]') if (self._name != 'Callable' or len(self.__args__) == 2 and self.__args__[0] is Ellipsis): if self._name: |