mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 04:54:47 +08:00
Issue #87 Stub for shelve
Py3's `shelve` is more restrictive, requiring keys to be `str`, whereas
Py2 allows any hashable type.
E.g.:
s = Shelf({})
s[1] = 'one' # raises AttributeError in py3, but it's OK in Py2
This commit is contained in:
33
stdlib/2.7/shelve.pyi
Normal file
33
stdlib/2.7/shelve.pyi
Normal file
@@ -0,0 +1,33 @@
|
||||
from typing import Any, Dict, Iterator, List, Optional, Tuple
|
||||
import collections
|
||||
|
||||
|
||||
class Shelf(collections.MutableMapping):
|
||||
def __init__(self, dict: Dict[Any, Any], protocol: Optional[int] = None, writeback: bool = ..., keyencoding: str = 'utf-8') -> None: ...
|
||||
def __iter__(self) -> Iterator[str]: ...
|
||||
def keys(self) -> List[Any]: ...
|
||||
def __len__(self) -> int: ...
|
||||
def has_key(self, key: Any) -> bool: ...
|
||||
def __contains__(self, key: Any) -> bool: ...
|
||||
def get(self, key: Any, default: Any = None) -> Any: ...
|
||||
def __getitem__(self, key: Any) -> Any: ...
|
||||
def __setitem__(self, key: Any, value: Any) -> None: ...
|
||||
def __delitem__(self, key: Any) -> None: ...
|
||||
def __enter__(self) -> Shelf: ...
|
||||
def __exit__(self, type: Any, value: Any, traceback: Any) -> None: ...
|
||||
def close(self) -> None: ...
|
||||
def __del__(self) -> None: ...
|
||||
def sync(self) -> None: ...
|
||||
|
||||
class BsdDbShelf(Shelf):
|
||||
def __init__(self, dict: Dict[Any, Any], protocol: Optional[int] = None, writeback: bool = ..., keyencoding: str = 'utf-8') -> None: ...
|
||||
def set_location(self, key: Any) -> Tuple[str, Any]: ...
|
||||
def next(self) -> Tuple[str, Any]: ...
|
||||
def previous(self) -> Tuple[str, Any]: ...
|
||||
def first(self) -> Tuple[str, Any]: ...
|
||||
def last(self) -> Tuple[str, Any]: ...
|
||||
|
||||
class DbfilenameShelf(Shelf):
|
||||
def __init__(self, filename: str, flag: str = 'c', protocol: Optional[int] = None, writeback: bool = ...) -> None: ...
|
||||
|
||||
def open(filename: str, flag: str = 'c', protocol: Optional[int] = None, writeback: bool = ...) -> DbfilenameShelf: ...
|
||||
31
stdlib/3/shelve.pyi
Normal file
31
stdlib/3/shelve.pyi
Normal file
@@ -0,0 +1,31 @@
|
||||
from typing import Any, Dict, Iterator, Optional, Tuple
|
||||
import collections
|
||||
|
||||
|
||||
class Shelf(collections.MutableMapping):
|
||||
def __init__(self, dict: Dict[bytes, Any], protocol: Optional[int] = None, writeback: bool = ..., keyencoding: str = 'utf-8') -> None: ...
|
||||
def __iter__(self) -> Iterator[str]: ...
|
||||
def __len__(self) -> int: ...
|
||||
def __contains__(self, key: Any) -> bool: ... # key should be str, but it would conflict with superclass's type signature
|
||||
def get(self, key: str, default: Any = None) -> Any: ...
|
||||
def __getitem__(self, key: str) -> Any: ...
|
||||
def __setitem__(self, key: str, value: Any) -> None: ...
|
||||
def __delitem__(self, key: str) -> None: ...
|
||||
def __enter__(self) -> Shelf: ...
|
||||
def __exit__(self, type: Any, value: Any, traceback: Any) -> None: ...
|
||||
def close(self) -> None: ...
|
||||
def __del__(self) -> None: ...
|
||||
def sync(self) -> None: ...
|
||||
|
||||
class BsdDbShelf(Shelf):
|
||||
def __init__(self, dict: Dict[bytes, Any], protocol: Optional[int] = None, writeback: bool = ..., keyencoding: str = 'utf-8') -> None: ...
|
||||
def set_location(self, key: Any) -> Tuple[str, Any]: ...
|
||||
def next(self) -> Tuple[str, Any]: ...
|
||||
def previous(self) -> Tuple[str, Any]: ...
|
||||
def first(self) -> Tuple[str, Any]: ...
|
||||
def last(self) -> Tuple[str, Any]: ...
|
||||
|
||||
class DbfilenameShelf(Shelf):
|
||||
def __init__(self, filename: str, flag: str = 'c', protocol: Optional[int] = None, writeback: bool = ...) -> None: ...
|
||||
|
||||
def open(filename: str, flag: str = 'c', protocol: Optional[int] = None, writeback: bool = ...) -> DbfilenameShelf: ...
|
||||
Reference in New Issue
Block a user