| 794 | |
| 795 | # Provide the tell method for unseekable stream |
| 796 | class _Tellable: |
| 797 | def __init__(self, fp): |
| 798 | self.fp = fp |
| 799 | self.offset = 0 |
| 800 | |
| 801 | def write(self, data): |
| 802 | n = self.fp.write(data) |
| 803 | self.offset += n |
| 804 | return n |
| 805 | |
| 806 | def tell(self): |
| 807 | return self.offset |
| 808 | |
| 809 | def flush(self): |
| 810 | self.fp.flush() |
| 811 | |
| 812 | def close(self): |
| 813 | self.fp.close() |
| 814 | |
| 815 | |
| 816 | class ZipExtFile(io.BufferedIOBase): |