"""Test generic alias support for stdlib types (added in PY39). Raise [unsubscriptable-object] error for PY37 and PY38. Make sure `import typing` doesn't change anything. """ # flake8: noqa # pylint: disable=missing-docstring,pointless-statement,unused-import # pylint: disable=too-few-public-methods,multiple-statements,line-too-long import abc import collections import collections.abc import contextlib import re import typing # special tuple[int, int] # [unsubscriptable-object] type[int] # [unsubscriptable-object] collections.abc.Callable[[int], str] # [unsubscriptable-object] # builtins dict[int, str] # [unsubscriptable-object] list[int] # [unsubscriptable-object] set[int] # [unsubscriptable-object] frozenset[int] # [unsubscriptable-object] # collections collections.defaultdict[int, str] # [unsubscriptable-object] collections.OrderedDict[int, str] # [unsubscriptable-object] collections.ChainMap[int, str] # [unsubscriptable-object] collections.Counter[int] # [unsubscriptable-object] collections.deque[int] # [unsubscriptable-object] # collections.abc collections.abc.Set[int] # [unsubscriptable-object] collections.abc.Collection[int] # [unsubscriptable-object] collections.abc.Container[int] # [unsubscriptable-object] collections.abc.ItemsView[int, str] # [unsubscriptable-object] collections.abc.KeysView[int] # [unsubscriptable-object] collections.abc.Mapping[int, str] # [unsubscriptable-object] collections.abc.MappingView[int] # [unsubscriptable-object] collections.abc.MutableMapping[int, str] # [unsubscriptable-object] collections.abc.MutableSequence[int] # [unsubscriptable-object] collections.abc.MutableSet[int] # [unsubscriptable-object] collections.abc.Sequence[int] # [unsubscriptable-object] collections.abc.ValuesView[int] # [unsubscriptable-object] collections.abc.Iterable[int] # [unsubscriptable-object] collections.abc.Iterator[int] # [unsubscriptable-object] collections.abc.Generator[int, None, None] # [unsubscriptable-object] collections.abc.Reversible[int] # [unsubscriptable-object] collections.abc.Coroutine[list[str], str, int] # [unsubscriptable-object,unsubscriptable-object] collections.abc.AsyncGenerator[int, None] # [unsubscriptable-object] collections.abc.AsyncIterable[int] # [unsubscriptable-object] collections.abc.AsyncIterator[int] # [unsubscriptable-object] collections.abc.Awaitable[int] # [unsubscriptable-object] # contextlib contextlib.AbstractContextManager[int] # [unsubscriptable-object] contextlib.AbstractAsyncContextManager[int] # [unsubscriptable-object] # re re.Pattern[str] # [unsubscriptable-object] re.Match[str] # [unsubscriptable-object] # unsubscriptable types collections.abc.Hashable collections.abc.Sized collections.abc.Hashable[int] # [unsubscriptable-object] collections.abc.Sized[int] # [unsubscriptable-object] # subscriptable with Python 3.9 collections.abc.ByteString[int] # [unsubscriptable-object] # Missing implementation for 'collections.abc' derived classes class DerivedHashable(collections.abc.Hashable): # [abstract-method] # __hash__ pass class DerivedIterable(collections.abc.Iterable[int]): # [unsubscriptable-object] pass class DerivedCollection(collections.abc.Collection[int]): # [unsubscriptable-object] pass # No implementation required for 'builtins' and 'collections' types class DerivedList(list[int]): # [unsubscriptable-object] pass class DerivedSet(set[int]): # [unsubscriptable-object] pass class DerivedOrderedDict(collections.OrderedDict[int, str]): # [unsubscriptable-object] pass class DerivedListIterable(list[collections.abc.Iterable[int]]): # [unsubscriptable-object,unsubscriptable-object] pass # Multiple generic base classes class DerivedMultiple(collections.abc.Sized, collections.abc.Hashable): # [abstract-method,abstract-method] pass class CustomAbstractCls1(abc.ABC): pass class CustomAbstractCls2(collections.abc.Sized, collections.abc.Iterable[CustomAbstractCls1]): # [abstract-method,unsubscriptable-object] # __len__ pass class CustomImplementation(CustomAbstractCls2): # [abstract-method] # __len__ pass # Type annotations var_tuple: tuple[int, int] # [unsubscriptable-object] var_dict: dict[int, str] # [unsubscriptable-object] var_orderedDict: collections.OrderedDict[int, str] # [unsubscriptable-object] var_container: collections.abc.Container[int] # [unsubscriptable-object] var_sequence: collections.abc.Sequence[int] # [unsubscriptable-object] var_iterable: collections.abc.Iterable[int] # [unsubscriptable-object] var_awaitable: collections.abc.Awaitable[int] # [unsubscriptable-object] var_contextmanager: contextlib.AbstractContextManager[int] # [unsubscriptable-object] var_pattern: re.Pattern[int] # [unsubscriptable-object] var_bytestring: collections.abc.ByteString var_hashable: collections.abc.Hashable var_sized: collections.abc.Sized # Type annotation with unsubscriptable type var_int: int[int] # [unsubscriptable-object] var_hashable2: collections.abc.Hashable[int] # [unsubscriptable-object] var_sized2: collections.abc.Sized[int] # [unsubscriptable-object] # subscriptable with Python 3.9 var_bytestring2: collections.abc.ByteString[int] # [unsubscriptable-object]