Skip to content

Commit dd26abc

Browse files
simplify
1 parent 631e727 commit dd26abc

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

sentry_sdk/integrations/anthropic.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,13 @@ def setup_once() -> None:
135135
MessageStreamManager.__enter__
136136
)
137137

138+
# Before https://github.com/anthropics/anthropic-sdk-python/commit/b1a1c0354a9aca450a7d512fdbdeb59c0ead688a
139+
# MessageStream inherits from Stream, so patching Stream is sufficient on these versions.
140+
if not issubclass(MessageStream, Stream):
141+
MessageStream.__iter__ = _wrap_message_stream_iter(MessageStream.__iter__)
142+
MessageStream.__next__ = _wrap_message_stream_next(MessageStream.__next__)
143+
MessageStream.close = _wrap_message_stream_close(MessageStream.close)
144+
138145
AsyncMessages.stream = _wrap_async_message_stream(AsyncMessages.stream)
139146
AsyncMessageStreamManager.__aenter__ = (
140147
_wrap_async_message_stream_manager_aenter(
@@ -143,12 +150,8 @@ def setup_once() -> None:
143150
)
144151

145152
# Before https://github.com/anthropics/anthropic-sdk-python/commit/b1a1c0354a9aca450a7d512fdbdeb59c0ead688a
146-
# MessageStream inherits from Stream, so patching Stream is sufficient on these versions.
147-
if not issubclass(MessageStream, Stream):
148-
MessageStream.__iter__ = _wrap_message_stream_iter(MessageStream.__iter__)
149-
MessageStream.__next__ = _wrap_message_stream_next(MessageStream.__next__)
150-
MessageStream.close = _wrap_message_stream_close(MessageStream.close)
151-
153+
# AsyncMessageStream inherits from AsyncStream, so patching Stream is sufficient on these versions.
154+
if not issubclass(AsyncMessageStream, AsyncStream):
152155
AsyncMessageStream.__aiter__ = _wrap_async_message_stream_aiter(
153156
AsyncMessageStream.__aiter__
154157
)

tests/integrations/anthropic/test_anthropic.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from unittest import mock
33
import json
44
from itertools import islice
5-
from builtins import anext
65

76
try:
87
from unittest.mock import AsyncMock
@@ -1049,7 +1048,7 @@ async def test_streaming_create_message_async_next_consumption(
10491048
)
10501049

10511050
while True:
1052-
await anext(messages)
1051+
await messages.__anext__()
10531052

10541053
assert len(events) == 1
10551054
(event,) = events
@@ -1151,13 +1150,13 @@ async def test_streaming_create_message_async_iterator_methods(
11511150
max_tokens=1024, messages=messages, model="model", stream=True
11521151
)
11531152

1154-
await anext(messages)
1155-
await anext(messages)
1153+
await messages.__anext__()
1154+
await messages.__anext__()
11561155

11571156
async for item in messages:
11581157
break
11591158

1160-
await anext(messages)
1159+
await messages.__anext__()
11611160
await messages.close()
11621161

11631162
assert len(events) == 1
@@ -1383,7 +1382,7 @@ async def test_stream_messages_async_next_consumption(
13831382
model="model",
13841383
) as stream:
13851384
while True:
1386-
await anext(stream)
1385+
await stream.__anext__()
13871386

13881387
assert len(events) == 1
13891388
(event,) = events
@@ -1486,16 +1485,18 @@ async def test_stream_messages_async_iterator_methods(
14861485
messages=messages,
14871486
model="model",
14881487
) as stream:
1489-
await anext(stream)
1490-
await anext(stream)
1488+
await stream.__anext__()
1489+
await stream.__anext__()
14911490

14921491
async for item in stream:
14931492
break
14941493

1495-
await anext(stream)
1494+
await stream.__anext__()
14961495
# New versions add TextEvent, so consume one more event.
1497-
if TextEvent is not None and isinstance(await anext(stream), TextEvent):
1498-
await anext(stream)
1496+
if TextEvent is not None and isinstance(
1497+
await stream.__anext__(), TextEvent
1498+
):
1499+
await stream.__anext__()
14991500
await stream.close()
15001501

15011502
assert len(events) == 1

0 commit comments

Comments
 (0)