2
2
3
3
import sys
4
4
from datetime import datetime
5
- from typing import Sequence , Union , cast , get_args , get_origin
5
+ from typing import Union , cast , get_args , get_origin
6
6
7
7
import pytest
8
8
@@ -390,6 +390,9 @@ def test_as_google_message():
390
390
391
391
def test_as_langchain_message ():
392
392
from langchain_core .language_models .base import LanguageModelInput
393
+ from langchain_core .language_models .base import (
394
+ Sequence as LangchainSequence , # pyright: ignore[reportPrivateImportUsage]
395
+ )
393
396
from langchain_core .language_models .chat_models import BaseChatModel
394
397
from langchain_core .messages import (
395
398
AIMessage ,
@@ -404,7 +407,12 @@ def test_as_langchain_message():
404
407
assert BaseChatModel .invoke .__annotations__ ["input" ] == "LanguageModelInput"
405
408
assert BaseChatModel .stream .__annotations__ ["input" ] == "LanguageModelInput"
406
409
407
- assert is_type_in_union (Sequence [MessageLikeRepresentation ], LanguageModelInput )
410
+ assert is_type_in_union (
411
+ # Use `LangchainSequence` instead of `Sequence` to avoid incorrect comparison
412
+ # between `typing.Sequence` and `collections.abc.Sequence`
413
+ LangchainSequence [MessageLikeRepresentation ],
414
+ LanguageModelInput ,
415
+ )
408
416
assert is_type_in_union (BaseMessage , MessageLikeRepresentation )
409
417
410
418
assert issubclass (AIMessage , BaseMessage )
0 commit comments