From 73cc218b2dcb58ad5489ac67eeb715df8a530900 Mon Sep 17 00:00:00 2001 From: yucheng Date: Fri, 25 Sep 2026 22:28:52 +0000 Subject: [PATCH] refactor(langfuse_otel): flatten output items with itertools.chain to satisfy LIT014 budget Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- litellm/integrations/langfuse/langfuse_otel.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/litellm/integrations/langfuse/langfuse_otel.py b/litellm/integrations/langfuse/langfuse_otel.py index 70734b8ba96..334130a16ef 100644 --- a/litellm/integrations/langfuse/langfuse_otel.py +++ b/litellm/integrations/langfuse/langfuse_otel.py @@ -3,6 +3,7 @@ import json import os from collections.abc import Iterable, Mapping, Sequence from datetime import datetime +from itertools import chain from typing import TYPE_CHECKING, Any, Final, Optional, Protocol, runtime_checkable from litellm._logging import verbose_logger @@ -498,7 +499,7 @@ def _extract_output_items(response_obj: _Gettable) -> str | None: output: Final = response_obj.get("output", []) if not isinstance(output, list) or not output: return None - rendered: Final = tuple(entry for item in output for entry in _output_items(item)) + rendered: Final = tuple(chain.from_iterable(map(_output_items, output))) return safe_dumps(list(rendered)) if rendered else None