(self, offset: int, whence: int = 0)
| 36 | return self.size - self._offset |
| 37 | |
| 38 | def seek(self, offset: int, whence: int = 0) -> None: |
| 39 | if whence == 0: |
| 40 | new_offset = offset |
| 41 | elif whence == 1: |
| 42 | new_offset = self._offset + offset |
| 43 | elif whence == 2: |
| 44 | new_offset = self.size + offset |
| 45 | else: |
| 46 | raise ValueError("Invalid value for whence") |
| 47 | |
| 48 | self._offset = max(0, min(new_offset, self.size)) |
| 49 | |
| 50 | def read(self, n: Optional[int] = None) -> bytes: |
| 51 | if n is None or n < 0: |