Exemple #1
0
    def write(self, data, force=False):
        '''The write function returned by the :meth:`start_response` method.

        Required by the WSGI specification.

        :param data: bytes to write
        :param force: Optional flag used internally
        :return: a :class:`~asyncio.Future` or the number of bytes written
        '''
        write = super().write
        chunks = []
        if not self._headers_sent:
            tosend = self.get_headers()
            self._headers_sent = tosend.flat(self.version, self.status)
            self.fire_event('on_headers')
            chunks.append(self._headers_sent)
        if data:
            if self.chunked:
                chunks.extend(http_chunks(data))
            else:
                chunks.append(data)
        elif force and self.chunked:
            chunks.extend(http_chunks(data, True))
        if chunks:
            return write(b''.join(chunks))
Exemple #2
0
    def write(self, data, force=False):
        '''The write function returned by the :meth:`start_response` method.

        Required by the WSGI specification.

        :param data: bytes to write
        :param force: Optional flag used internally
        :return: a :class:`~asyncio.Future` or the number of bytes written
        '''
        write = super().write
        chunks = []
        if not self._headers_sent:
            tosend = self.get_headers()
            self._headers_sent = tosend.flat(self.version, self.status)
            self.fire_event('on_headers')
            chunks.append(self._headers_sent)
        if data:
            if self.chunked:
                chunks.extend(http_chunks(data))
            else:
                chunks.append(data)
        elif force and self.chunked:
            chunks.extend(http_chunks(data, True))
        if chunks:
            return write(b''.join(chunks))
Exemple #3
0
 def _write_body_data(self, transport, data, finish=False):
     if self.is_chunked():
         data = http_chunks(data, finish)
     elif data:
         data = (data,)
     else:
         return
     for chunk in data:
         transport.write(chunk)
Exemple #4
0
 def _write_body_data(self, transport, data, finish=False):
     if self.is_chunked():
         data = http_chunks(data, finish)
     elif data:
         data = (data,)
     else:
         return
     for chunk in data:
         transport.write(chunk)