MCPcopy
hub / github.com/pallets/werkzeug / send_event

Method send_event

src/werkzeug/sansio/multipart.py:300–331  ·  view source on GitHub ↗
(self, event: Event)

Source from the content-addressed store, hash-verified

298 self.state = State.PREAMBLE
299
300 def send_event(self, event: Event) -> bytes:
301 if isinstance(event, Preamble) and self.state == State.PREAMBLE:
302 self.state = State.PART
303 return event.data
304 elif isinstance(event, (Field, File)) and self.state in {
305 State.PREAMBLE,
306 State.PART,
307 State.DATA,
308 }:
309 data = b"\r\n--" + self.boundary + b"\r\n"
310 data += b'Content-Disposition: form-data; name="%s"' % event.name.encode()
311 if isinstance(event, File):
312 data += b'; filename="%s"' % event.filename.encode()
313 data += b"\r\n"
314 for name, value in t.cast(Field, event).headers:
315 if name.lower() != "content-disposition":
316 data += f"{name}: {value}\r\n".encode()
317 self.state = State.DATA_START
318 return data
319 elif isinstance(event, Data) and self.state == State.DATA_START:
320 self.state = State.DATA
321 if len(event.data) > 0:
322 return b"\r\n" + event.data
323 else:
324 return event.data
325 elif isinstance(event, Data) and self.state == State.DATA:
326 return event.data
327 elif isinstance(event, Epilogue):
328 self.state = State.COMPLETE
329 return b"\r\n--" + self.boundary + b"--\r\n" + event.data
330 else:
331 raise ValueError(f"Cannot generate {event} in state: {self.state}")

Callers 3

stream_encode_multipartFunction · 0.95
test_decoder_simpleFunction · 0.95
test_empty_fieldFunction · 0.95

Calls

no outgoing calls

Tested by 3

stream_encode_multipartFunction · 0.76
test_decoder_simpleFunction · 0.76
test_empty_fieldFunction · 0.76