MCPcopy Create free account
hub / github.com/Louisym/MiniCC / push_chunk

Method push_chunk

tutorials/10_sse_streaming.py:147–173  ·  view source on GitHub ↗

推入一块新收到的数据,返回解析出的完整事件列表。 可能返回 0 个事件(数据不够完整) 可能返回 1 个事件(刚好凑齐一个) 可能返回多个事件(一块数据里包含了好几个事件) 对应源码: runtime/sse.rs:26-39 (push_chunk)

(self, chunk: str)

Source from the content-addressed store, hash-verified

145 self._retry = None # 当前事件的 retry
146
147 def push_chunk(self, chunk: str) -> list[SseEvent]:
148 """
149 推入一块新收到的数据,返回解析出的完整事件列表。
150
151 可能返回 0 个事件(数据不够完整)
152 可能返回 1 个事件(刚好凑齐一个)
153 可能返回多个事件(一块数据里包含了好几个事件)
154
155 对应源码: runtime/sse.rs:26-39 (push_chunk)
156 """
157 self.buffer += chunk
158 events = []
159
160 # 逐行处理缓冲区
161 while "\n" in self.buffer:
162 # 找到第一个换行符的位置
163 index = self.buffer.index("\n")
164 # 提取这一行(不包含换行符)
165 line = self.buffer[:index]
166 # 从缓冲区移除已处理的部分(包含换行符)
167 self.buffer = self.buffer[index + 1:]
168 # 处理 \r\n 的情况(Windows 风格换行)
169 line = line.rstrip("\r")
170 # 处理这一行
171 self._process_line(line, events)
172
173 return events
174
175 def finish(self) -> list[SseEvent]:
176 """

Callers 2

run_streaming_demoFunction · 0.95
mainFunction · 0.95

Calls 1

_process_lineMethod · 0.95

Tested by

no test coverage detected