3 from _compression import BaseStream
4 from _typeshed import ReadableBuffer, Self, StrOrBytesPath, WriteableBuffer
5 from typing import IO, Any, Iterable, Protocol, TextIO, TypeVar, overload
6 from typing_extensions import Literal, SupportsIndex, final
8 # The following attributes and methods are optional:
9 # def fileno(self) -> int: ...
10 # def close(self) -> object: ...
11 class _ReadableFileobj(_compression._Reader, Protocol): ...
13 class _WritableFileobj(Protocol):
14 def write(self, __b: bytes) -> object: ...
15 # The following attributes and methods are optional:
16 # def fileno(self) -> int: ...
17 # def close(self) -> object: ...
21 def compress(data: bytes, compresslevel: int = ...) -> bytes: ...
22 def decompress(data: bytes) -> bytes: ...
24 _ReadBinaryMode = Literal["", "r", "rb"]
25 _WriteBinaryMode = Literal["w", "wb", "x", "xb", "a", "ab"]
26 _ReadTextMode = Literal["rt"]
27 _WriteTextMode = Literal["wt", "xt", "at"]
31 filename: _ReadableFileobj,
32 mode: _ReadBinaryMode = ...,
33 compresslevel: int = ...,
40 filename: _ReadableFileobj,
42 compresslevel: int = ...,
43 encoding: str | None = ...,
44 errors: str | None = ...,
45 newline: str | None = ...,
49 filename: _WritableFileobj,
50 mode: _WriteBinaryMode,
51 compresslevel: int = ...,
58 filename: _WritableFileobj,
60 compresslevel: int = ...,
61 encoding: str | None = ...,
62 errors: str | None = ...,
63 newline: str | None = ...,
67 filename: StrOrBytesPath,
68 mode: _ReadBinaryMode | _WriteBinaryMode = ...,
69 compresslevel: int = ...,
76 filename: StrOrBytesPath,
77 mode: _ReadTextMode | _WriteTextMode,
78 compresslevel: int = ...,
79 encoding: str | None = ...,
80 errors: str | None = ...,
81 newline: str | None = ...,
84 class BZ2File(BaseStream, IO[bytes]):
85 def __enter__(self: Self) -> Self: ...
86 if sys.version_info >= (3, 9):
88 def __init__(self, filename: _WritableFileobj, mode: _WriteBinaryMode, *, compresslevel: int = ...) -> None: ...
90 def __init__(self, filename: _ReadableFileobj, mode: _ReadBinaryMode = ..., *, compresslevel: int = ...) -> None: ...
93 self, filename: StrOrBytesPath, mode: _ReadBinaryMode | _WriteBinaryMode = ..., *, compresslevel: int = ...
98 self, filename: _WritableFileobj, mode: _WriteBinaryMode, buffering: Any | None = ..., compresslevel: int = ...
102 self, filename: _ReadableFileobj, mode: _ReadBinaryMode = ..., buffering: Any | None = ..., compresslevel: int = ...
107 filename: StrOrBytesPath,
108 mode: _ReadBinaryMode | _WriteBinaryMode = ...,
109 buffering: Any | None = ...,
110 compresslevel: int = ...,
112 def read(self, size: int | None = ...) -> bytes: ...
113 def read1(self, size: int = ...) -> bytes: ...
114 def readline(self, size: SupportsIndex = ...) -> bytes: ... # type: ignore
115 def readinto(self, b: WriteableBuffer) -> int: ...
116 def readlines(self, size: SupportsIndex = ...) -> list[bytes]: ...
117 def seek(self, offset: int, whence: int = ...) -> int: ...
118 def write(self, data: ReadableBuffer) -> int: ...
119 def writelines(self, seq: Iterable[ReadableBuffer]) -> None: ...
122 class BZ2Compressor(object):
123 def __init__(self, compresslevel: int = ...) -> None: ...
124 def compress(self, __data: bytes) -> bytes: ...
125 def flush(self) -> bytes: ...
128 class BZ2Decompressor(object):
129 def decompress(self, data: bytes, max_length: int = ...) -> bytes: ...
131 def eof(self) -> bool: ...
133 def needs_input(self) -> bool: ...
135 def unused_data(self) -> bytes: ...