mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-26 22:05:29 +00:00
core[patch]: Remove some usage of .copy() in favor of .model_copy() (#26126)
Address under place where deprecated functionality is used.
This commit is contained in:
@@ -23,11 +23,11 @@ from langchain_core.messages.utils import (
|
|||||||
@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
|
@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
|
||||||
def test_merge_message_runs_str(msg_cls: Type[BaseMessage]) -> None:
|
def test_merge_message_runs_str(msg_cls: Type[BaseMessage]) -> None:
|
||||||
messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
|
messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
|
||||||
messages_copy = [m.copy(deep=True) for m in messages]
|
messages_model_copy = [m.model_copy(deep=True) for m in messages]
|
||||||
expected = [msg_cls("foo\nbar\nbaz")]
|
expected = [msg_cls("foo\nbar\nbaz")]
|
||||||
actual = merge_message_runs(messages)
|
actual = merge_message_runs(messages)
|
||||||
assert actual == expected
|
assert actual == expected
|
||||||
assert messages == messages_copy
|
assert messages == messages_model_copy
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
|
@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
|
||||||
@@ -35,11 +35,11 @@ def test_merge_message_runs_str_with_specified_separator(
|
|||||||
msg_cls: Type[BaseMessage],
|
msg_cls: Type[BaseMessage],
|
||||||
) -> None:
|
) -> None:
|
||||||
messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
|
messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
|
||||||
messages_copy = [m.copy(deep=True) for m in messages]
|
messages_model_copy = [m.model_copy(deep=True) for m in messages]
|
||||||
expected = [msg_cls("foo<sep>bar<sep>baz")]
|
expected = [msg_cls("foo<sep>bar<sep>baz")]
|
||||||
actual = merge_message_runs(messages, chunk_separator="<sep>")
|
actual = merge_message_runs(messages, chunk_separator="<sep>")
|
||||||
assert actual == expected
|
assert actual == expected
|
||||||
assert messages == messages_copy
|
assert messages == messages_model_copy
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
|
@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
|
||||||
@@ -47,11 +47,11 @@ def test_merge_message_runs_str_without_separator(
|
|||||||
msg_cls: Type[BaseMessage],
|
msg_cls: Type[BaseMessage],
|
||||||
) -> None:
|
) -> None:
|
||||||
messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
|
messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
|
||||||
messages_copy = [m.copy(deep=True) for m in messages]
|
messages_model_copy = [m.model_copy(deep=True) for m in messages]
|
||||||
expected = [msg_cls("foobarbaz")]
|
expected = [msg_cls("foobarbaz")]
|
||||||
actual = merge_message_runs(messages, chunk_separator="")
|
actual = merge_message_runs(messages, chunk_separator="")
|
||||||
assert actual == expected
|
assert actual == expected
|
||||||
assert messages == messages_copy
|
assert messages == messages_model_copy
|
||||||
|
|
||||||
|
|
||||||
def test_merge_message_runs_content() -> None:
|
def test_merge_message_runs_content() -> None:
|
||||||
@@ -75,7 +75,7 @@ def test_merge_message_runs_content() -> None:
|
|||||||
id="3",
|
id="3",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
messages_copy = [m.copy(deep=True) for m in messages]
|
messages_model_copy = [m.model_copy(deep=True) for m in messages]
|
||||||
expected = [
|
expected = [
|
||||||
AIMessage(
|
AIMessage(
|
||||||
[
|
[
|
||||||
@@ -95,7 +95,7 @@ def test_merge_message_runs_content() -> None:
|
|||||||
assert actual == expected
|
assert actual == expected
|
||||||
invoked = merge_message_runs().invoke(messages)
|
invoked = merge_message_runs().invoke(messages)
|
||||||
assert actual == invoked
|
assert actual == invoked
|
||||||
assert messages == messages_copy
|
assert messages == messages_model_copy
|
||||||
|
|
||||||
|
|
||||||
def test_merge_messages_tool_messages() -> None:
|
def test_merge_messages_tool_messages() -> None:
|
||||||
@@ -103,10 +103,10 @@ def test_merge_messages_tool_messages() -> None:
|
|||||||
ToolMessage("foo", tool_call_id="1"),
|
ToolMessage("foo", tool_call_id="1"),
|
||||||
ToolMessage("bar", tool_call_id="2"),
|
ToolMessage("bar", tool_call_id="2"),
|
||||||
]
|
]
|
||||||
messages_copy = [m.copy(deep=True) for m in messages]
|
messages_model_copy = [m.model_copy(deep=True) for m in messages]
|
||||||
actual = merge_message_runs(messages)
|
actual = merge_message_runs(messages)
|
||||||
assert actual == messages
|
assert actual == messages
|
||||||
assert messages == messages_copy
|
assert messages == messages_model_copy
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -132,13 +132,13 @@ def test_filter_message(filters: Dict) -> None:
|
|||||||
SystemMessage("foo", name="blah", id="1"),
|
SystemMessage("foo", name="blah", id="1"),
|
||||||
HumanMessage("bar", name="blur", id="2"),
|
HumanMessage("bar", name="blur", id="2"),
|
||||||
]
|
]
|
||||||
messages_copy = [m.copy(deep=True) for m in messages]
|
messages_model_copy = [m.model_copy(deep=True) for m in messages]
|
||||||
expected = messages[1:2]
|
expected = messages[1:2]
|
||||||
actual = filter_messages(messages, **filters)
|
actual = filter_messages(messages, **filters)
|
||||||
assert expected == actual
|
assert expected == actual
|
||||||
invoked = filter_messages(**filters).invoke(messages)
|
invoked = filter_messages(**filters).invoke(messages)
|
||||||
assert invoked == actual
|
assert invoked == actual
|
||||||
assert messages == messages_copy
|
assert messages == messages_model_copy
|
||||||
|
|
||||||
|
|
||||||
_MESSAGES_TO_TRIM = [
|
_MESSAGES_TO_TRIM = [
|
||||||
@@ -154,7 +154,7 @@ _MESSAGES_TO_TRIM = [
|
|||||||
HumanMessage("This is a 4 token text.", id="third"),
|
HumanMessage("This is a 4 token text.", id="third"),
|
||||||
AIMessage("This is a 4 token text.", id="fourth"),
|
AIMessage("This is a 4 token text.", id="fourth"),
|
||||||
]
|
]
|
||||||
_MESSAGES_TO_TRIM_COPY = [m.copy(deep=True) for m in _MESSAGES_TO_TRIM]
|
_MESSAGES_TO_TRIM_COPY = [m.model_copy(deep=True) for m in _MESSAGES_TO_TRIM]
|
||||||
|
|
||||||
|
|
||||||
def test_trim_messages_first_30() -> None:
|
def test_trim_messages_first_30() -> None:
|
||||||
|
Reference in New Issue
Block a user