mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-10 05:51:52 +08:00
Fix abstract classes for Python 3 (#2239)
* add metaclass=ABCMeta to some classes * mark some more classes as explicitly abstract * make some more classes concrete
This commit is contained in:
@@ -286,9 +286,12 @@ class Counter(Dict[_T, int], Generic[_T]):
|
||||
|
||||
_OrderedDictT = TypeVar('_OrderedDictT', bound=OrderedDict)
|
||||
|
||||
class _OrderedDictKeysView(KeysView[_KT], Reversible[_KT]): ...
|
||||
class _OrderedDictItemsView(ItemsView[_KT, _VT], Reversible[Tuple[_KT, _VT]]): ...
|
||||
class _OrderedDictValuesView(ValuesView[_VT], Reversible[_VT]): ...
|
||||
class _OrderedDictKeysView(KeysView[_KT], Reversible[_KT]):
|
||||
def __reversed__(self) -> Iterator[_KT]: ...
|
||||
class _OrderedDictItemsView(ItemsView[_KT, _VT], Reversible[Tuple[_KT, _VT]]):
|
||||
def __reversed__(self) -> Iterator[Tuple[_KT, _VT]]: ...
|
||||
class _OrderedDictValuesView(ValuesView[_VT], Reversible[_VT]):
|
||||
def __reversed__(self) -> Iterator[_VT]: ...
|
||||
|
||||
class OrderedDict(Dict[_KT, _VT], Reversible[_KT], Generic[_KT, _VT]):
|
||||
def popitem(self, last: bool = ...) -> Tuple[_KT, _VT]: ...
|
||||
|
||||
@@ -47,7 +47,7 @@ class ExecutionLoader(InspectLoader):
|
||||
def get_filename(self, fullname: str) -> _Path: ...
|
||||
def get_code(self, fullname: str) -> Optional[types.CodeType]: ...
|
||||
|
||||
class SourceLoader(ResourceLoader, ExecutionLoader):
|
||||
class SourceLoader(ResourceLoader, ExecutionLoader, metaclass=ABCMeta):
|
||||
def path_mtime(self, path: _Path) -> Union[int, float]: ...
|
||||
def set_data(self, path: _Path, data: bytes) -> None: ...
|
||||
def get_source(self, fullname: str) -> Optional[str]: ...
|
||||
@@ -82,7 +82,7 @@ if sys.version_info >= (3, 3):
|
||||
target: Optional[types.ModuleType] = ...
|
||||
) -> Optional[ModuleSpec]: ...
|
||||
|
||||
class FileLoader(ResourceLoader, ExecutionLoader):
|
||||
class FileLoader(ResourceLoader, ExecutionLoader, metaclass=ABCMeta):
|
||||
name = ... # type: str
|
||||
path = ... # type: _Path
|
||||
def __init__(self, fullname: str, path: _Path) -> None: ...
|
||||
|
||||
@@ -139,6 +139,11 @@ X_OK: int
|
||||
|
||||
class _Environ(MutableMapping[AnyStr, AnyStr], Generic[AnyStr]):
|
||||
def copy(self) -> Dict[AnyStr, AnyStr]: ...
|
||||
def __delitem__(self, key: AnyStr) -> None: ...
|
||||
def __getitem__(self, key: AnyStr) -> AnyStr: ...
|
||||
def __setitem__(self, key: AnyStr, value: AnyStr) -> None: ...
|
||||
def __iter__(self) -> Iterator[AnyStr]: ...
|
||||
def __len__(self) -> int: ...
|
||||
|
||||
environ: _Environ[str]
|
||||
if sys.version_info >= (3, 2):
|
||||
@@ -456,6 +461,7 @@ else:
|
||||
def rmdir(path: _PathType) -> None: ...
|
||||
if sys.version_info >= (3, 7):
|
||||
class _ScandirIterator(Iterator[DirEntry[AnyStr]], ContextManager[_ScandirIterator[AnyStr]]):
|
||||
def __next__(self) -> DirEntry[AnyStr]: ...
|
||||
def close(self) -> None: ...
|
||||
@overload
|
||||
def scandir() -> _ScandirIterator[str]: ...
|
||||
@@ -465,6 +471,7 @@ if sys.version_info >= (3, 7):
|
||||
def scandir(path: Union[AnyStr, PathLike[AnyStr]]) -> _ScandirIterator[AnyStr]: ...
|
||||
elif sys.version_info >= (3, 6):
|
||||
class _ScandirIterator(Iterator[DirEntry[AnyStr]], ContextManager[_ScandirIterator[AnyStr]]):
|
||||
def __next__(self) -> DirEntry[AnyStr]: ...
|
||||
def close(self) -> None: ...
|
||||
@overload
|
||||
def scandir() -> _ScandirIterator[str]: ...
|
||||
|
||||
@@ -178,7 +178,7 @@ class Coroutine(Awaitable[_V_co], Generic[_T_co, _T_contra, _V_co]):
|
||||
# NOTE: This type does not exist in typing.py or PEP 484.
|
||||
# The parameters corrrespond to Generator, but the 4th is the original type.
|
||||
class AwaitableGenerator(Awaitable[_V_co], Generator[_T_co, _T_contra, _V_co],
|
||||
Generic[_T_co, _T_contra, _V_co, _S]):
|
||||
Generic[_T_co, _T_contra, _V_co, _S], metaclass=ABCMeta):
|
||||
pass
|
||||
|
||||
@runtime
|
||||
@@ -465,7 +465,7 @@ class TextIO(IO[str]):
|
||||
@abstractmethod
|
||||
def __enter__(self) -> TextIO: ...
|
||||
|
||||
class ByteString(Sequence[int]): ...
|
||||
class ByteString(Sequence[int], metaclass=ABCMeta): ...
|
||||
|
||||
class Match(Generic[AnyStr]):
|
||||
pos = 0
|
||||
|
||||
Reference in New Issue
Block a user