diff options
| author | Vlad Serebrennikov <brainvlad@gmail.com> | 2020-04-30 04:06:39 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-29 18:06:39 -0700 |
| commit | 138a9b9c2a394f30f222c23391f9515a7df9d809 (patch) | |
| tree | 04e0c2277414db12ea5a2acdc3cdf867f16db613 /Lib/typing.py | |
| parent | b1e11c31c523dc082985e9de779ceeb47224e536 (diff) | |
| download | cpython-git-138a9b9c2a394f30f222c23391f9515a7df9d809.tar.gz | |
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 c829898619..f3cd280a09 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: |
