|
40 | 40 | from anthropic.resources import AsyncMessages, Messages |
41 | 41 | from anthropic.types import RawMessageStreamEvent |
42 | 42 |
|
| 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 | + |
43 | 57 | 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, |
50 | 64 | ) |
51 | 65 |
|
52 | 66 | if TYPE_CHECKING: |
@@ -418,15 +432,28 @@ def new_iterator() -> "Iterator[MessageStreamEvent]": |
418 | 432 | content_blocks: "list[str]" = [] |
419 | 433 |
|
420 | 434 | 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( |
422 | 449 | event, |
423 | 450 | ( |
424 | | - RawMessageStartEvent, |
425 | | - RawMessageDeltaEvent, |
426 | | - RawMessageStopEvent, |
427 | | - RawContentBlockStartEvent, |
428 | | - RawContentBlockDeltaEvent, |
429 | | - RawContentBlockStopEvent, |
| 451 | + MessageStartEvent, |
| 452 | + MessageDeltaEvent, |
| 453 | + MessageStopEvent, |
| 454 | + ContentBlockStartEvent, |
| 455 | + ContentBlockDeltaEvent, |
| 456 | + ContentBlockStopEvent, |
430 | 457 | ), |
431 | 458 | ): |
432 | 459 | yield event |
@@ -470,15 +497,28 @@ async def new_iterator_async() -> "AsyncIterator[MessageStreamEvent]": |
470 | 497 | content_blocks: "list[str]" = [] |
471 | 498 |
|
472 | 499 | 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( |
474 | 514 | event, |
475 | 515 | ( |
476 | | - RawMessageStartEvent, |
477 | | - RawMessageDeltaEvent, |
478 | | - RawMessageStopEvent, |
479 | | - RawContentBlockStartEvent, |
480 | | - RawContentBlockDeltaEvent, |
481 | | - RawContentBlockStopEvent, |
| 516 | + MessageStartEvent, |
| 517 | + MessageDeltaEvent, |
| 518 | + MessageStopEvent, |
| 519 | + ContentBlockStartEvent, |
| 520 | + ContentBlockDeltaEvent, |
| 521 | + ContentBlockStopEvent, |
482 | 522 | ), |
483 | 523 | ): |
484 | 524 | yield event |
|
0 commit comments