From ad2156ed84c3fa3f615b331ec298c5d4d5f65ebf Mon Sep 17 00:00:00 2001 From: RemiZOffAlex Date: Fri, 19 Jun 2026 21:57:08 +0300 Subject: [PATCH] Update --- src/nucleus/response/stream.py | 35 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/nucleus/response/stream.py b/src/nucleus/response/stream.py index 4b9aa98..df59f42 100644 --- a/src/nucleus/response/stream.py +++ b/src/nucleus/response/stream.py @@ -33,12 +33,12 @@ def bytes_next(self): return response.data -def str_next(self): - if self.status == 'eof': +def str_next(instance): + if instance.status == 'eof': raise StopIteration - response = self.response + response = instance.response crlf = b'\r\n' - if self.position == 'status': + if instance.position == 'status': status = ' '.join([ response.version, str(response.code), @@ -46,19 +46,19 @@ def str_next(self): ]) raw = status.encode() raw += crlf - self.position = 'headers' + instance.position = 'headers' return raw - if self.position == 'headers': - self.position = 'body' + if instance.position == 'headers': + instance.position = 'body' raw = b'' for key in response.headers: value = response.headers[key] raw += key.encode() + b' ' + value.encode() + crlf raw += crlf return raw - if self.position == 'body': + if instance.position == 'body': raw = response.data.encode() - self.status = 'eof' + instance.status = 'eof' return raw @@ -105,17 +105,18 @@ class ResponseStream: self.status = 'running' self.position = 'status' response = self.response - print(type(response)) - print(type(response.data)) if isinstance(response.data, str): - self.__next__ = str_next + self.handler = str_next elif isinstance(response.data, BufferedReader): - self.__next__ = stream_next + self.handler = stream_next elif isinstance(response.data, bytes): - self.__next__ = bytes_next - else: - raise ValueError(type(response.data)) + self.handler = bytes_next return self def __next__(self): - pass + return self.handler(self) + + def handler(self): + response = self.response + print('data type:', type(response.data)) + raise ValueError('data type error')