MCPcopy Index your code
hub / github.com/AI45Lab/Code / py_session_request_to_parts

Function py_session_request_to_parts

sdk/python/src/lib.rs:6427–6460  ·  view source on GitHub ↗
(
    request: &Bound<'_, PyDict>,
)

Source from the content-addressed store, hash-verified

6425}
6426
6427fn py_session_request_to_parts(
6428 request: &Bound<'_, PyDict>,
6429) -> PyResult<(
6430 String,
6431 Option<Vec<RustMessage>>,
6432 Vec<a3s_code_core::llm::Attachment>,
6433)> {
6434 let prompt = request
6435 .get_item("prompt")?
6436 .ok_or_else(|| PyValueError::new_err("request missing 'prompt' field"))?
6437 .extract::<String>()?;
6438
6439 let history = match request.get_item("history")? {
6440 Some(value) => {
6441 let list = value
6442 .downcast::<PyList>()
6443 .map_err(|_| PyTypeError::new_err("request.history must be a list"))?;
6444 Some(py_list_to_messages(list)?)
6445 }
6446 None => None,
6447 };
6448
6449 let attachments = match request.get_item("attachments")? {
6450 Some(value) => {
6451 let list = value
6452 .downcast::<PyList>()
6453 .map_err(|_| PyTypeError::new_err("request.attachments must be a list"))?;
6454 py_attachment_list_to_rust(list)?
6455 }
6456 None => Vec::new(),
6457 };
6458
6459 Ok((prompt, history, attachments))
6460}
6461
6462fn py_session_input_to_parts(
6463 input: &Bound<'_, PyAny>,

Callers 3

send_requestMethod · 0.85
stream_requestMethod · 0.85

Calls 2

py_list_to_messagesFunction · 0.85

Tested by

no test coverage detected