Asynchronously write the given data to this stream. This method returns a `.Future` that resolves (with a result of ``None``) when the write has been completed. The ``data`` argument may be of type `bytes` or `memoryview`. .. versionchanged:: 4.0 Now re
(self, data: Union[bytes, memoryview])
| 501 | return future |
| 502 | |
| 503 | def write(self, data: Union[bytes, memoryview]) -> class="st">"Future[None]": |
| 504 | class="st">"""Asynchronously write the given data to this stream. |
| 505 | |
| 506 | This method returns a `.Future` that resolves (with a result |
| 507 | of ``None``) when the write has been completed. |
| 508 | |
| 509 | The ``data`` argument may be of type `bytes` or `memoryview`. |
| 510 | |
| 511 | .. versionchanged:: 4.0 |
| 512 | Now returns a `.Future` if no callback is given. |
| 513 | |
| 514 | .. versionchanged:: 4.5 |
| 515 | Added support for `memoryview` arguments. |
| 516 | |
| 517 | .. versionchanged:: 6.0 |
| 518 | |
| 519 | The ``callback`` argument was removed. Use the returned |
| 520 | `.Future` instead. |
| 521 | |
| 522 | class="st">""" |
| 523 | self._check_closed() |
| 524 | if data: |
| 525 | if isinstance(data, memoryview): |
| 526 | class="cm"># Make sure that ``len(data) == data.nbytes`` |
| 527 | data = memoryview(data).cast(class="st">"B") |
| 528 | if ( |
| 529 | self.max_write_buffer_size is not None |
| 530 | and len(self._write_buffer) + len(data) > self.max_write_buffer_size |
| 531 | ): |
| 532 | raise StreamBufferFullError(class="st">"Reached maximum write buffer size") |
| 533 | self._write_buffer.append(data) |
| 534 | self._total_write_index += len(data) |
| 535 | future = Future() class="cm"># type: Future[None] |
| 536 | future.add_done_callback(lambda f: f.exception()) |
| 537 | self._write_futures.append((self._total_write_index, future)) |
| 538 | if not self._connecting: |
| 539 | self._handle_write() |
| 540 | if self._write_buffer: |
| 541 | self._add_io_state(self.io_loop.WRITE) |
| 542 | self._maybe_add_error_listener() |
| 543 | return future |
| 544 | |
| 545 | def set_close_callback(self, callback: Optional[Callable[[], None]]) -> None: |
| 546 | class="st">"""Call the given callback when the stream is closed. |
no test coverage detected