Exemple #1
0
 def iterator(self):
     result = yield
     if result is None or isinstance(result, (str, bytes)):
         chunk = to_bytes(result)
         self.headers['Content-Length'] = len(chunk)
         yield chunk
     else:
         chunks = iter(result)
         first_chunk = to_bytes(next(chunks, b''))
         try:
             result_length = len(result)
         except TypeError:  # result doesn't support len()
             pass
         else:
             if result_length <= 1:
                 self.headers['Content-Length'] = len(first_chunk)
         yield first_chunk
         for chunk in chunks:
             yield to_bytes(chunk, error_callback=self.logger.exception)
Exemple #2
0
 def __init__(self, status=None, data=None, headers=()):
     self.status = status or self.default_status
     self.data = to_bytes(data or status)
     self.update_headers(headers)