Skip to content

Commit d47b64d

Browse files
.
1 parent 091506c commit d47b64d

File tree

1 file changed

+60
-20
lines changed

1 file changed

+60
-20
lines changed

sentry_sdk/integrations/anthropic.py

Lines changed: 60 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,27 @@
4040
from anthropic.resources import AsyncMessages, Messages
4141
from anthropic.types import RawMessageStreamEvent
4242

43+
message_types_have_raw_prefix = False
44+
try:
45+
# http://github.com/anthropics/anthropic-sdk-python/commit/bc9d11cd2addec6976c46db10b7c89a8c276101a
46+
from anthropic.types import (
47+
RawMessageStartEvent,
48+
RawMessageDeltaEvent,
49+
RawMessageStopEvent,
50+
RawContentBlockStartEvent,
51+
RawContentBlockDeltaEvent,
52+
RawContentBlockStopEvent,
53+
)
54+
except ImportError:
55+
message_types_have_raw_prefix = True
56+
4357
from anthropic.types import (
44-
RawMessageStartEvent,
45-
RawMessageDeltaEvent,
46-
RawMessageStopEvent,
47-
RawContentBlockStartEvent,
48-
RawContentBlockDeltaEvent,
49-
RawContentBlockStopEvent,
58+
MessageStartEvent,
59+
MessageDeltaEvent,
60+
MessageStopEvent,
61+
ContentBlockStartEvent,
62+
ContentBlockDeltaEvent,
63+
ContentBlockStopEvent,
5064
)
5165

5266
if TYPE_CHECKING:
@@ -418,15 +432,28 @@ def new_iterator() -> "Iterator[MessageStreamEvent]":
418432
content_blocks: "list[str]" = []
419433

420434
for event in old_iterator:
421-
if not isinstance(
435+
if (
436+
message_types_have_raw_prefix
437+
and not isinstance(
438+
event,
439+
(
440+
RawMessageStartEvent,
441+
RawMessageDeltaEvent,
442+
RawMessageStopEvent,
443+
RawContentBlockStartEvent,
444+
RawContentBlockDeltaEvent,
445+
RawContentBlockStopEvent,
446+
),
447+
)
448+
) or not isinstance(
422449
event,
423450
(
424-
RawMessageStartEvent,
425-
RawMessageDeltaEvent,
426-
RawMessageStopEvent,
427-
RawContentBlockStartEvent,
428-
RawContentBlockDeltaEvent,
429-
RawContentBlockStopEvent,
451+
MessageStartEvent,
452+
MessageDeltaEvent,
453+
MessageStopEvent,
454+
ContentBlockStartEvent,
455+
ContentBlockDeltaEvent,
456+
ContentBlockStopEvent,
430457
),
431458
):
432459
yield event
@@ -470,15 +497,28 @@ async def new_iterator_async() -> "AsyncIterator[MessageStreamEvent]":
470497
content_blocks: "list[str]" = []
471498

472499
async for event in old_iterator:
473-
if not isinstance(
500+
if (
501+
message_types_have_raw_prefix
502+
and not isinstance(
503+
event,
504+
(
505+
RawMessageStartEvent,
506+
RawMessageDeltaEvent,
507+
RawMessageStopEvent,
508+
RawContentBlockStartEvent,
509+
RawContentBlockDeltaEvent,
510+
RawContentBlockStopEvent,
511+
),
512+
)
513+
) or not isinstance(
474514
event,
475515
(
476-
RawMessageStartEvent,
477-
RawMessageDeltaEvent,
478-
RawMessageStopEvent,
479-
RawContentBlockStartEvent,
480-
RawContentBlockDeltaEvent,
481-
RawContentBlockStopEvent,
516+
MessageStartEvent,
517+
MessageDeltaEvent,
518+
MessageStopEvent,
519+
ContentBlockStartEvent,
520+
ContentBlockDeltaEvent,
521+
ContentBlockStopEvent,
482522
),
483523
):
484524
yield event

0 commit comments

Comments
 (0)