| 489 | return self._eof and not self._buffer |
| 490 | |
| 491 | def feed_data(self, data): |
| 492 | assert not self._eof, 'feed_data after feed_eof' |
| 493 | |
| 494 | if not data: |
| 495 | return |
| 496 | |
| 497 | self._buffer.extend(data) |
| 498 | self._wakeup_waiter() |
| 499 | |
| 500 | if (self._transport is not None and |
| 501 | not self._paused and |
| 502 | len(self._buffer) > 2 * self._limit): |
| 503 | try: |
| 504 | self._transport.pause_reading() |
| 505 | except NotImplementedError: |
| 506 | # The transport can't be paused. |
| 507 | # We'll just have to buffer all data. |
| 508 | # Forget the transport so we don't keep trying. |
| 509 | self._transport = None |
| 510 | else: |
| 511 | self._paused = True |
| 512 | |
| 513 | async def _wait_for_data(self, func_name): |
| 514 | """Wait until feed_data() or feed_eof() is called. |