If that fails, the data is queued in an internal write buffer until it can be
sent.
+ The *data* buffer should be a bytes, bytearray, or C-contiguous one-dimensional
+ memoryview object.
+
The method should be used along with the ``drain()`` method::
stream.write(data)
await stream.drain()
- .. note::
- The *data* buffer should be a C contiguous one-dimensional :term:`bytes-like object <bytes-like object>`.
.. method:: writelines(data)
def write(self, data):
if not isinstance(data, (bytes, bytearray, memoryview)):
- raise TypeError(f'data argument must be a bytes-like object, '
- f'not {type(data).__name__!r}')
+ raise TypeError(f'data argument must be a bytes, bytearray, or memoryview '
+ f'object, not {type(data).__name__!r}')
if self._eof:
raise RuntimeError('Cannot call write() after write_eof()')
if self._empty_waiter is not None: