Append the given piece of data (should be a buffer-compatible object).
(self, data: Union[bytes, bytearray, memoryview])
| 137 | _large_buf_threshold = 2048 |
| 138 | |
| 139 | def append(self, data: Union[bytes, bytearray, memoryview]) -> None: |
| 140 | class="st">""" |
| 141 | Append the given piece of data (should be a buffer-compatible object). |
| 142 | class="st">""" |
| 143 | size = len(data) |
| 144 | if size > self._large_buf_threshold: |
| 145 | if not isinstance(data, memoryview): |
| 146 | data = memoryview(data) |
| 147 | self._buffers.append((True, data)) |
| 148 | elif size > 0: |
| 149 | if self._buffers: |
| 150 | is_memview, b = self._buffers[-1] |
| 151 | new_buf = is_memview or len(b) >= self._large_buf_threshold |
| 152 | else: |
| 153 | new_buf = True |
| 154 | if new_buf: |
| 155 | self._buffers.append((False, bytearray(data))) |
| 156 | else: |
| 157 | b += data class="cm"># type: ignore |
| 158 | |
| 159 | self._size += size |
| 160 | |
| 161 | def peek(self, size: int) -> memoryview: |
| 162 | class="st">""" |
no outgoing calls