MCPcopy Index your code
hub / github.com/InfinitiBit/graphbit / python_any_to_json

Function python_any_to_json

python/src/tools/registry.rs:443–464  ·  view source on GitHub ↗

Helper function to convert Python Any to JSON

(value: &Bound<'_, PyAny>)

Source from the content-addressed store, hash-verified

441
442/// Helper function to convert Python Any to JSON
443fn python_any_to_json(value: &Bound<'_, PyAny>) -> PyResult<serde_json::Value> {
444 if value.is_none() {
445 Ok(serde_json::Value::Null)
446 } else if let Ok(s) = value.extract::<String>() {
447 Ok(serde_json::Value::String(s))
448 } else if let Ok(i) = value.extract::<i64>() {
449 Ok(serde_json::Value::Number(serde_json::Number::from(i)))
450 } else if let Ok(f) = value.extract::<f64>() {
451 if let Some(num) = serde_json::Number::from_f64(f) {
452 Ok(serde_json::Value::Number(num))
453 } else {
454 Ok(serde_json::Value::Null)
455 }
456 } else if let Ok(b) = value.extract::<bool>() {
457 Ok(serde_json::Value::Bool(b))
458 } else if let Ok(dict) = value.downcast::<PyDict>() {
459 python_dict_to_json(&dict)
460 } else {
461 // Fallback to string representation
462 Ok(serde_json::Value::String(value.to_string()))
463 }
464}

Callers 1

python_dict_to_jsonFunction · 0.85

Calls 2

python_dict_to_jsonFunction · 0.85
to_stringMethod · 0.80

Tested by

no test coverage detected