(self, size=-1)
| 410 | self._file = file_obj |
| 411 | |
| 412 | def read(self, size=-1): |
| 413 | prefix_len = len(self._prefix) |
| 414 | if self._prefix_pos >= prefix_len: |
| 415 | return self._file.read(size) |
| 416 | remaining = prefix_len - self._prefix_pos |
| 417 | if size < 0: |
| 418 | chunk = self._prefix[self._prefix_pos:] + self._file.read() |
| 419 | self._prefix_pos = prefix_len |
| 420 | return chunk |
| 421 | if size <= remaining: |
| 422 | chunk = self._prefix[self._prefix_pos:self._prefix_pos + size] |
| 423 | self._prefix_pos += size |
| 424 | return chunk |
| 425 | chunk = self._prefix[self._prefix_pos:] |
| 426 | self._prefix_pos = prefix_len |
| 427 | return chunk + self._file.read(size - remaining) |
| 428 | |
| 429 | def close(self): |
| 430 | self._file.close() |
no outgoing calls