Use generics for 2.7/weakref (#516)

This commit is contained in:
Alvaro Caceres
2016-08-31 20:48:45 -05:00
committed by Guido van Rossum
parent d56a5e80fb
commit 23c44d3e36
2 changed files with 49 additions and 67 deletions

View File

@@ -1,5 +1,14 @@
from typing import Iterator, Any
from typing import Iterator, Any, Iterable, MutableSet, TypeVar, Generic
class WeakSet:
def __iter__(self) -> Iterator[Any]: ...
def add(self, *args: Any, **kwargs: Any) -> Any: ...
_T = TypeVar('_T')
class WeakSet(MutableSet[_T], Generic[_T]):
def __init__(self, data: Iterable[_T] = ...) -> None: ...
def add(self, x: _T) -> None: ...
def discard(self, x: _T) -> None: ...
def __contains__(self, x: Any) -> bool: ...
def __len__(self) -> int: ...
def __iter__(self) -> Iterator[_T]: ...
# TODO: difference, difference_update, ...

View File

@@ -1,74 +1,47 @@
# Stubs for weakref (Python 2)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
# Based on stub automatically generated by stubgen.
from typing import Any
import UserDict
from _weakref import (
getweakrefcount as getweakrefcount,
getweakrefs as getweakrefs,
ref as ref,
proxy as proxy,
CallableProxyType as CallableProxyType,
ProxyType as ProxyType,
ReferenceType as ReferenceType
)
from _weakrefset import WeakSet as WeakSet
from exceptions import ReferenceError as ReferenceError
from typing import Any, MutableMapping, Generic, Iterator, List, TypeVar
from _weakref import (getweakrefcount, getweakrefs, ref, proxy,
CallableProxyType, ProxyType, ReferenceType)
from _weakrefset import WeakSet
ProxyTypes = ... # type: Any
class WeakValueDictionary(UserDict.UserDict):
def __init__(self, *args, **kw): ...
def __getitem__(self, key): ...
def __delitem__(self, key): ...
def __contains__(self, key): ...
def has_key(self, key): ...
def __setitem__(self, key, value): ...
def clear(self): ...
def copy(self): ...
__copy__ = ... # type: Any
def __deepcopy__(self, memo): ...
def get(self, key, default=None): ...
def items(self): ...
def iteritems(self): ...
def iterkeys(self): ...
__iter__ = ... # type: Any
def itervaluerefs(self): ...
def itervalues(self): ...
def popitem(self): ...
def pop(self, key, *args): ...
def setdefault(self, key, default=None): ...
def update(self, dict=None, **kwargs): ...
def valuerefs(self): ...
def values(self): ...
_KT = TypeVar('_KT')
_VT = TypeVar('_VT')
# Don't inherit from typing.Dict since
# isinstance(weakref.WeakValueDictionary(), dict) is False
class WeakValueDictionary(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
def itervaluerefs(self) -> Iterator[ReferenceType[_VT]]: ...
def valuerefs(self) -> List[ReferenceType[_VT]]: ...
def __setitem__(self, k: _KT, v: _VT) -> None: ...
def __delitem__(self, v: _KT) -> None: ...
def __getitem__(self, k: _KT) -> _VT: ...
def __len__(self) -> int: ...
def __iter__(self) -> Iterator[_KT]: ...
def has_key(self, key: _KT) -> bool: ...
def copy(self) -> WeakValueDictionary[_KT, _VT]: ...
class WeakKeyDictionary(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
def iterkeyrefs(self) -> Iterator[ReferenceType[_KT]]: ...
def keyrefs(self) -> List[ReferenceType[_KT]]: ...
def __setitem__(self, k: _KT, v: _VT) -> None: ...
def __delitem__(self, v: _KT) -> None: ...
def __getitem__(self, k: _KT) -> _VT: ...
def __len__(self) -> int: ...
def __iter__(self) -> Iterator[_KT]: ...
def has_key(self, key: _KT) -> bool: ...
def copy(self) -> WeakKeyDictionary[_KT, _VT]: ...
# TODO: make generic
class KeyedRef(ReferenceType):
key = ... # type: Any
def __new__(type, ob, callback, key): ...
def __init__(self, ob, callback, key): ...
class WeakKeyDictionary(UserDict.UserDict):
data = ... # type: Any
def __init__(self, dict=None): ...
def __delitem__(self, key): ...
def __getitem__(self, key): ...
def __setitem__(self, key, value): ...
def copy(self): ...
__copy__ = ... # type: Any
def __deepcopy__(self, memo): ...
def get(self, key, default=None): ...
def has_key(self, key): ...
def __contains__(self, key): ...
def items(self): ...
def iteritems(self): ...
def iterkeyrefs(self): ...
def iterkeys(self): ...
__iter__ = ... # type: Any
def itervalues(self): ...
def keyrefs(self): ...
def keys(self): ...
def popitem(self): ...
def pop(self, key, *args): ...
def setdefault(self, key, default=None): ...
def update(self, dict=None, **kwargs): ...