diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 00da3ca96f16..981bdbb81f1d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -327,9 +327,10 @@ checker, and leave out unnecessary detail: Some further tips for good type hints: * use built-in generics (`list`, `dict`, `tuple`, `set`), instead - of importing them from `typing`, **except** for arbitrary length tuples - (`Tuple[int, ...]`) (see - [python/mypy#9980](https://github.com/python/mypy/issues/9980)); + of importing them from `typing`, **except** in type aliases, in base classes, and for + arbitrary length tuples (`Tuple[int, ...]`); +* use `X | Y` instead of `Union[X, Y]` and `X | None`, instead of + `Optional[X]`, **except** when it is not possible due to mypy bugs (type aliases and base classes); * in Python 3 stubs, import collections (`Mapping`, `Iterable`, etc.) from `collections.abc` instead of `typing`; * avoid invariant collection types (`list`, `dict`) in argument