From 02bd2bdf694b0a62a842c93dbbe782fbc8f49229 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Fri, 10 Mar 2017 20:24:20 -0800 Subject: [PATCH] Make pickle accept IO[str] instead of BinaryIO. (#980) * Make pickle accept IO[str] instead of BinaryIO. This makes the following code work: pickle.Unpickler(cStringIO.StringIO()) (Which didn't work before because cStringIO.StringIO inherits "only" from IO[str], not BinaryIO) * Use bytes instead of str. --- stdlib/2/pickle.pyi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/stdlib/2/pickle.pyi b/stdlib/2/pickle.pyi index 1b5b1d6f3..ed7af5884 100644 --- a/stdlib/2/pickle.pyi +++ b/stdlib/2/pickle.pyi @@ -1,14 +1,14 @@ # Stubs for pickle (Python 2) -from typing import Any, BinaryIO +from typing import Any, IO HIGHEST_PROTOCOL = ... # type: int -def dump(obj: Any, file: BinaryIO, protocol: int = None) -> None: ... +def dump(obj: Any, file: IO[bytes], protocol: int = None) -> None: ... def dumps(obj: Any, protocol: int = ...) -> bytes: ... -def load(file: BinaryIO) -> Any: ... +def load(file: IO[bytes]) -> Any: ... def loads(string: bytes) -> Any: ... @@ -25,7 +25,7 @@ class UnpicklingError(PickleError): class Pickler: - def __init__(self, file: BinaryIO, protocol: int = None) -> None: ... + def __init__(self, file: IO[bytes], protocol: int = None) -> None: ... def dump(self, obj: Any) -> None: ... @@ -33,6 +33,6 @@ class Pickler: class Unpickler: - def __init__(self, file: BinaryIO) -> None: ... + def __init__(self, file: IO[bytes]) -> None: ... def load(self) -> Any: ...