"""
With the new LangChain version (0.3.0) there is support for Pydantic V2,
they changed all the models to use Pydantic V2, and some of our code is
returning a false positive specifically related to the BaseMessage class.
"""
# Error
from langchain_core.messages import BaseMessage
def my_function():
message = BaseMessage(content="x", type="system")
message.additional_kwargs["foo"] = "bar"
# Not error
from langchain_core.messages import BaseMessage
from langchain_core.pydantic_v1 import Field
# Note: with from pydantic.v1 import Field fails too
class MyBaseMessage(BaseMessage):
additional_kwargs: dict = Field(default_factory=dict)
def my_function():
message = BaseMessage(content="x", type="system")
message.additional_kwargs["foo"] = "bar"
Configuration
No response
Command used
poetry run pylint app tests scripts
Pylint output
************* Module tests.unit.generators.chat_histories.test_chat_message_enricher
tests/unit/generators/chat_histories/test_chat_message_enricher.py:17:26: E1135: Value 'enriched_message.additional_kwargs' doesn't support membership test (unsupported-membership-test)
tests/unit/generators/chat_histories/test_chat_message_enricher.py:18:22: E1136: Value 'enriched_message.additional_kwargs' is unsubscriptable (unsubscriptable-object)
Expected behavior
Not a unsuscriptable-object error
Pylint version
pylint 3.2.7
astroid 3.3.4
Also reproducible on last versions
Bug description
Configuration
No response
Command used
Pylint output
Expected behavior
Not a unsuscriptable-object error
Pylint version
OS / Environment
Mac ARM
Additional dependencies