From 3d6d896761023a1a438592fe6ce4001acdbf2989 Mon Sep 17 00:00:00 2001 From: TechTide AI Date: Thu, 21 May 2026 18:04:10 -0400 Subject: [PATCH] fix: resolve pyright type errors in weave instrumentation Fix two categories of pyright errors reported in CI: 1. `OtelExportReq`/`OtelExportRes` were removed from `weave.trace_server.trace_server_interface` in newer weave releases. Change `otel_export` signature to use `Any` types for forward compatibility. 2. `WeaveTracerManagedTraceServer` could not be instantiated because the parent `InMemoryWeaveTraceServer` was missing abstract methods added in newer weave versions: `annotation_queue_delete` and `eval_results_query`. Add stub implementations that raise `NotImplementedError`, matching the existing pattern for unsupported experimental APIs. Fixes #496 --- agentlightning/instrumentation/weave.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/agentlightning/instrumentation/weave.py b/agentlightning/instrumentation/weave.py index e75de0b72..6b16dbf55 100644 --- a/agentlightning/instrumentation/weave.py +++ b/agentlightning/instrumentation/weave.py @@ -303,8 +303,10 @@ def evaluation_status(self, req: tsi.EvaluationStatusReq) -> tsi.EvaluationStatu # --- OTEL API --- - def otel_export(self, req: tsi.OtelExportReq) -> tsi.OtelExportRes: - return tsi.OtelExportRes() + def otel_export(self, req: Any) -> Any: + # OtelExportReq/OtelExportRes were removed from tsi in newer weave versions. + # Use Any to maintain backward compatibility across weave releases. + return None # ========================================== # Object Interface (V2 APIs) @@ -465,6 +467,13 @@ def trace_usage(self, *args: Any, **kwargs: Any) -> Any: def calls_usage(self, *args: Any, **kwargs: Any) -> Any: raise NotImplementedError() + # Methods added in newer weave releases to satisfy the abstract interface. + def annotation_queue_delete(self, *args: Any, **kwargs: Any) -> Any: + raise NotImplementedError() + + def eval_results_query(self, *args: Any, **kwargs: Any) -> Any: + raise NotImplementedError() + # Module-level storage for originals _original_init_weave_get_server: Callable[..., Any] | None = None