diff --git a/stdlib/3/base64.pyi b/stdlib/3/base64.pyi index 387e11f57..4e76ebbd9 100644 --- a/stdlib/3/base64.pyi +++ b/stdlib/3/base64.pyi @@ -1,21 +1,38 @@ # Stubs for base64 -# Based on http://docs.python.org/3.2/library/base64.html - from typing import IO, Union +import sys -def b64encode(s: bytes, altchars: bytes = ...) -> bytes: ... -def b64decode(s: Union[bytes, str], altchars: bytes = ..., + +if sys.version_info <= (3, 2): + _encodable = bytes + _decodable = bytes +elif sys.version_info[:2] == (3, 3): + _encodable = bytes + _decodable = Union[bytes, str] +elif sys.version_info >= (3, 4): + _encodable = Union[bytes, bytearray, memoryview] + _decodable = Union[bytes, bytearray, memoryview, str] + +def b64encode(s: _encodable, altchars: bytes = ...) -> bytes: ... +def b64decode(s: _decodable, altchars: bytes = ..., validate: bool = ...) -> bytes: ... -def standard_b64encode(s: bytes) -> bytes: ... -def standard_b64decode(s: bytes) -> bytes: ... -def urlsafe_b64encode(s: bytes) -> bytes: ... -def urlsafe_b64decode(s: bytes) -> bytes: ... -def b32encode(s: bytes) -> bytes: ... -def b32decode(s: bytes, casefold: bool = ..., +def standard_b64encode(s: _encodable) -> bytes: ... +def standard_b64decode(s: _decodable) -> bytes: ... +def urlsafe_b64encode(s: _encodable) -> bytes: ... +def urlsafe_b64decode(s: _decodable) -> bytes: ... +def b32encode(s: _encodable) -> bytes: ... +def b32decode(s: _decodable, casefold: bool = ..., map01: bytes = ...) -> bytes: ... -def b16encode(s: bytes) -> bytes: ... -def b16decode(s: bytes, casefold: bool = ...) -> bytes: ... +def b16encode(s: _encodable) -> bytes: ... +def b16decode(s: _decodable, casefold: bool = ...) -> bytes: ... +if sys.version_info >= (3, 4): + def a85encode(b: _encodable, *, foldspaces: bool = ..., wrapcol: int = ..., + pad: bool = ..., adobe: bool = ...) -> bytes: ... + def a85decode(b: _decodable, *, foldspaces: bool = ..., + adobe: bool = ..., ignorechars: Union[str, bytes] = ...) -> bytes: ... + def b85encode(b: _encodable, pad: bool = ...) -> bytes: ... + def b85decode(b: _decodable) -> bytes: ... def decode(input: IO[bytes], output: IO[bytes]) -> None: ... def decodebytes(s: bytes) -> bytes: ...