| 1769 | |
| 1770 | |
| 1771 | class WSGIFileWrapper(object): |
| 1772 | |
| 1773 | def __init__(self, fp, buffer_size=1024*64): |
| 1774 | self.fp, self.buffer_size = fp, buffer_size |
| 1775 | for attr in ('fileno', 'close', 'read', 'readlines'): |
| 1776 | if hasattr(fp, attr): setattr(self, attr, getattr(fp, attr)) |
| 1777 | |
| 1778 | def __iter__(self): |
| 1779 | read, buff = self.fp.read, self.buffer_size |
| 1780 | while True: |
| 1781 | part = read(buff) |
| 1782 | if not part: break |
| 1783 | yield part |
| 1784 | |
| 1785 | |
| 1786 |