提取当前积累的事件数据,组装成 SseEvent。 提取后重置内部状态,准备解析下一个事件。 对应源码: runtime/sse.rs:82-96 (take_event)
(self)
| 239 | # 其他未知字段直接忽略(SSE 规范要求的) |
| 240 | |
| 241 | def _take_event(self) -> Optional[SseEvent]: |
| 242 | """ |
| 243 | 提取当前积累的事件数据,组装成 SseEvent。 |
| 244 | 提取后重置内部状态,准备解析下一个事件。 |
| 245 | |
| 246 | 对应源码: runtime/sse.rs:82-96 (take_event) |
| 247 | """ |
| 248 | # 如果什么数据都没有,说明没有有效事件 |
| 249 | if not self._data_lines and not self._event_name and not self._id and self._retry is None: |
| 250 | return None |
| 251 | |
| 252 | # 多行 data 用换行符拼接(SSE 规范) |
| 253 | data = "\n".join(self._data_lines) |
| 254 | self._data_lines = [] |
| 255 | |
| 256 | event = SseEvent( |
| 257 | event=self._event_name, |
| 258 | data=data, |
| 259 | id=self._id, |
| 260 | retry=self._retry, |
| 261 | ) |
| 262 | |
| 263 | # 重置状态 |
| 264 | self._event_name = None |
| 265 | self._id = None |
| 266 | self._retry = None |
| 267 | |
| 268 | return event |
| 269 | |
| 270 | |
| 271 | # ============================================================ |
no test coverage detected