From ecc03d81aed273e892ed7ebdb362974aff018026 Mon Sep 17 00:00:00 2001 From: Yujong Lee Date: Sat, 5 Sep 2026 17:52:19 -0700 Subject: [PATCH] fix(rust): preserve bridge behavior after core move --- .../python-bridge/src/callback_bindings.rs | 72 ------------------- 1 file changed, 72 deletions(-) diff --git a/litellm-rust/crates/python-bridge/src/callback_bindings.rs b/litellm-rust/crates/python-bridge/src/callback_bindings.rs index f7180d84823..65851cc4163 100644 --- a/litellm-rust/crates/python-bridge/src/callback_bindings.rs +++ b/litellm-rust/crates/python-bridge/src/callback_bindings.rs @@ -1,18 +1,9 @@ use std::num::NonZeroUsize; -use litellm_core::provider_callbacks::{ - CallbackDecision, ProviderAttemptObserver, ProviderError, ProviderPostCall, ProviderPreCall, -}; use litellm_python_interop::callback_runtime::{AsyncContext, CallbackRuntime, SyncContext}; use pyo3::prelude::*; use crate::constants::OCR_CALLBACK_CAPACITY; -use crate::execution::PythonCallContext; - -litellm_core::provider_attempt_observer_catalog!(crate::bind_python_hooks, - pub(crate) struct PythonProviderSession; - trait ProviderAttemptObserver; -); litellm_core::streaming_observer_catalog!(crate::bind_python_hooks, pub struct PythonStreamingSession; trait litellm_core::provider_callbacks::StreamingObserver; @@ -36,41 +27,6 @@ pub(crate) fn register(module: &Bound<'_, PyModule>) -> PyResult<()> { ) } -pub(crate) enum PythonProviderObserver { - Disabled, - Sync(PythonProviderSession), - Async(PythonProviderSession), -} - -impl PythonProviderObserver { - pub(crate) fn new( - adapter: Option>, - context: PythonCallContext<'_>, - ) -> PyResult { - let Some(adapter) = adapter else { - return Ok(Self::Disabled); - }; - let py = context.py; - let module = py.import("litellm.rust_bridge._native")?; - let runtime = module - .getattr("__python_callback_runtime__")? - .extract::>()? - .0 - .clone(); - if context.asynchronous { - Ok(Self::Async(PythonProviderSession::new( - adapter.bind(py), - runtime.async_context(py)?, - )?)) - } else { - Ok(Self::Sync(PythonProviderSession::new( - adapter.bind(py), - runtime.sync_context(py)?, - )?)) - } - } -} - pub(crate) fn python_async_session( adapter: Py, py: Python<'_>, @@ -83,31 +39,3 @@ pub(crate) fn python_async_session( .clone(); PythonSession::new(adapter.bind(py), runtime.async_context(py)?) } - -impl ProviderAttemptObserver for PythonProviderObserver { - type Error = PyErr; - - async fn pre_call(&mut self, input: &ProviderPreCall) -> PyResult { - match self { - Self::Disabled => Ok(CallbackDecision::Unchanged), - Self::Sync(session) => session.pre_call(input).await, - Self::Async(session) => session.pre_call(input).await, - } - } - - async fn post_call(&mut self, input: &ProviderPostCall) -> PyResult { - match self { - Self::Disabled => Ok(CallbackDecision::Unchanged), - Self::Sync(session) => session.post_call(input).await, - Self::Async(session) => session.post_call(input).await, - } - } - - async fn error(&mut self, input: &ProviderError) -> PyResult<()> { - match self { - Self::Disabled => Ok(()), - Self::Sync(session) => session.error(input).await, - Self::Async(session) => session.error(input).await, - } - } -}