Skip to content

typing: minor changes #3933

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions stdlib/3/typing.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class _SpecialForm:

Tuple: _SpecialForm = ...
Generic: _SpecialForm = ...
# Protocol is only present in 3.8 and later, but mypy needs it unconditionally
Protocol: _SpecialForm = ...
Callable: _SpecialForm = ...
Type: _SpecialForm = ...
Expand All @@ -30,7 +31,8 @@ if sys.version_info >= (3, 8):
# TypedDict is a (non-subscriptable) special form.
TypedDict: object

class GenericMeta(type): ...
if sys.version_info < (3, 7):
class GenericMeta(type): ...

# Return type that indicates a function does not return.
# This type is equivalent to the None type, but the no-op Union is necessary to
Expand All @@ -55,24 +57,23 @@ def no_type_check_decorator(decorator: _C) -> _C: ...

# Type aliases and type constructors

class TypeAlias:
class _Alias:
# Class for defining generic aliases for library types.
def __init__(self, target_type: type) -> None: ...
def __getitem__(self, typeargs: Any) -> Any: ...

Union = TypeAlias(object)
Optional = TypeAlias(object)
List = TypeAlias(object)
Dict = TypeAlias(object)
DefaultDict = TypeAlias(object)
Set = TypeAlias(object)
FrozenSet = TypeAlias(object)
Counter = TypeAlias(object)
Deque = TypeAlias(object)
ChainMap = TypeAlias(object)
Union = _Alias()
Optional = _Alias()
List = _Alias()
Dict = _Alias()
DefaultDict = _Alias()
Set = _Alias()
FrozenSet = _Alias()
Counter = _Alias()
Deque = _Alias()
ChainMap = _Alias()

if sys.version_info >= (3, 7):
OrderedDict = TypeAlias(object)
OrderedDict = _Alias()

if sys.version_info >= (3, 9):
Annotated: _SpecialForm = ...
Expand Down Expand Up @@ -616,9 +617,9 @@ if sys.version_info >= (3, 8):
def get_args(tp: Any) -> Tuple[Any, ...]: ...

@overload
def cast(tp: Type[_T], obj: Any) -> _T: ...
def cast(typ: Type[_T], val: Any) -> _T: ...
@overload
def cast(tp: str, obj: Any) -> Any: ...
def cast(typ: str, val: Any) -> Any: ...

# Type constructors

Expand Down
2 changes: 0 additions & 2 deletions tests/stubtest_whitelists/py35.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,8 @@ typing.MutableSequence.remove
typing.MutableSet.add
typing.MutableSet.discard
typing.MutableSet.remove
typing.Protocol
typing.Sequence.count
typing.Sequence.index
typing.Type
typing.runtime_checkable
unittest.async_case
uuid.UUID.int
Expand Down
2 changes: 0 additions & 2 deletions tests/stubtest_whitelists/py36.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,8 @@ typing.MutableSequence.remove
typing.MutableSet.add
typing.MutableSet.discard
typing.MutableSet.remove
typing.Protocol
typing.Sequence.count
typing.Sequence.index
typing.Type
typing.runtime_checkable
unittest.async_case
urllib.parse.parse_qs
Expand Down
30 changes: 0 additions & 30 deletions tests/stubtest_whitelists/py37.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,36 +66,6 @@ tracemalloc.Traceback.format
types.ClassMethodDescriptorType.__get__
types.MethodDescriptorType.__get__
types.WrapperDescriptorType.__get__
typing.AbstractSet
typing.AsyncContextManager
typing.AsyncGenerator
typing.AsyncIterable
typing.AsyncIterator
typing.Awaitable
typing.ByteString
typing.Collection
typing.Container
typing.ContextManager
typing.Coroutine
typing.Generator
typing.GenericMeta
typing.Hashable
typing.ItemsView
typing.Iterable
typing.Iterator
typing.KeysView
typing.Mapping
typing.MappingView
typing.MutableMapping
typing.MutableSequence
typing.MutableSet
typing.Optional
typing.Protocol
typing.Reversible
typing.Sequence
typing.Sized
typing.Union
typing.ValuesView
typing.runtime_checkable
unittest.async_case
urllib.parse.parse_qs
Expand Down
29 changes: 0 additions & 29 deletions tests/stubtest_whitelists/py38.txt
Original file line number Diff line number Diff line change
Expand Up @@ -162,35 +162,6 @@ types.ClassMethodDescriptorType.__get__
types.CodeType.replace
types.MethodDescriptorType.__get__
types.WrapperDescriptorType.__get__
typing.AbstractSet
typing.AsyncContextManager
typing.AsyncGenerator
typing.AsyncIterable
typing.AsyncIterator
typing.Awaitable
typing.ByteString
typing.Collection
typing.Container
typing.ContextManager
typing.Coroutine
typing.Generator
typing.GenericMeta
typing.Hashable
typing.ItemsView
typing.Iterable
typing.Iterator
typing.KeysView
typing.Mapping
typing.MappingView
typing.MutableMapping
typing.MutableSequence
typing.MutableSet
typing.Optional
typing.Reversible
typing.Sequence
typing.Sized
typing.Union
typing.ValuesView
unittest.TestCase.addCleanup
unittest.case.TestCase.addCleanup
unittest.doModuleCleanups
Expand Down
7 changes: 2 additions & 5 deletions tests/stubtest_whitelists/py3_common.txt
Original file line number Diff line number Diff line change
Expand Up @@ -510,17 +510,12 @@ types.coroutine
types.new_class
types.prepare_class
typing.AwaitableGenerator
typing.Generic
typing.IO.__iter__
typing.IO.__next__
typing.IO.closed
typing.Match
typing.NamedTuple._asdict
typing.NamedTuple._make
typing.NamedTuple._replace
typing.Pattern
typing.TypeAlias
typing.cast
typing.type_check_only
unittest.TestCase.assertAlmostEqual
unittest.TestCase.assertDictContainsSubset
Expand Down Expand Up @@ -592,6 +587,8 @@ builtins.quit
# Builtins that mypy pretends exist
builtins.reveal_locals
builtins.reveal_type
# Various classes in typing aren't types at runtime. In addition, mypy thinks some special forms are tautologically defined.
typing.[A-Z]\w+
# We can't distinguish not having a default value from having a default value of inspect.Parameter.empty
inspect.Parameter.__init__
inspect.Signature.__init__
Expand Down