Skip to content

Commit 4c4f260

Browse files
fix(litellm): Guard against module shadowing (#5249)
Use explicit imports to prevent `AttributeError` when `litellm` is shadowed. Follows up on #5140.
1 parent d54edff commit 4c4f260

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

sentry_sdk/integrations/litellm.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
try:
2121
import litellm # type: ignore[import-not-found]
22+
from litellm import input_callback, success_callback, failure_callback
2223
except ImportError:
2324
raise DidNotEnable("LiteLLM not installed")
2425

@@ -278,14 +279,14 @@ def __init__(self: "LiteLLMIntegration", include_prompts: bool = True) -> None:
278279
@staticmethod
279280
def setup_once() -> None:
280281
"""Set up LiteLLM callbacks for monitoring."""
281-
litellm.input_callback = litellm.input_callback or []
282+
litellm.input_callback = input_callback or []
282283
if _input_callback not in litellm.input_callback:
283284
litellm.input_callback.append(_input_callback)
284285

285-
litellm.success_callback = litellm.success_callback or []
286+
litellm.success_callback = success_callback or []
286287
if _success_callback not in litellm.success_callback:
287288
litellm.success_callback.append(_success_callback)
288289

289-
litellm.failure_callback = litellm.failure_callback or []
290+
litellm.failure_callback = failure_callback or []
290291
if _failure_callback not in litellm.failure_callback:
291292
litellm.failure_callback.append(_failure_callback)

tests/test_shadowed_module.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@ def pytest_generate_tests(metafunc):
2626

2727
metafunc.parametrize(
2828
"integration_submodule_name",
29-
# Temporarily skip some integrations
30-
submodule_names
31-
- {
32-
"litellm",
33-
},
29+
submodule_names,
3430
)
3531

3632

0 commit comments

Comments
 (0)