(self)
| 135 | raise NotImplementedError() |
| 136 | |
| 137 | def _read(self): |
| 138 | self._reset() |
| 139 | for character in iter(self._next, ''): |
| 140 | if character != self.FRAME_SEPARATOR: |
| 141 | self._buffer.write(character) |
| 142 | continue |
| 143 | frame = self._buffer.getvalue() |
| 144 | self._reset() |
| 145 | yield self._parse(frame) |
| 146 | try: |
| 147 | self._stream.close() |
| 148 | finally: |
| 149 | yield self.SENTINEL |
| 150 | |
| 151 | def _reset(self): |
| 152 | self._buffer = cStringIO.StringIO() |