Skip to content

Commit 0bd5dca

Browse files
committed
fix: adaptations for changes in Weave settings
1 parent 6c68922 commit 0bd5dca

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

integrations/weave/src/haystack_integrations/components/connectors/weave/weave_connector.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44

5+
from dataclasses import asdict, is_dataclass
56
from typing import Any
67

78
from haystack import component, default_from_dict, default_to_dict, logging, tracing
9+
from pydantic import BaseModel
810

911
from haystack_integrations.tracing.weave import WeaveTracer
1012
from weave.trace.settings import UserSettings
@@ -110,7 +112,10 @@ def to_dict(self) -> dict[str, Any]:
110112
weave_init_kwargs = self.weave_init_kwargs.copy()
111113
settings = weave_init_kwargs.get("settings", None)
112114
if isinstance(settings, UserSettings):
113-
weave_init_kwargs["settings"] = settings.model_dump(mode="json", exclude_defaults=True)
115+
if isinstance(settings, BaseModel):
116+
weave_init_kwargs["settings"] = settings.model_dump(mode="json", exclude_defaults=True)
117+
elif is_dataclass(settings):
118+
weave_init_kwargs["settings"] = asdict(settings)
114119

115120
return default_to_dict(self, pipeline_name=self.pipeline_name, weave_init_kwargs=weave_init_kwargs)
116121

integrations/weave/tests/test_weave_connector.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,7 @@ def test_serialization_of_weave_init_kwargs_with_user_settings(self) -> None:
9797
serialized: dict[str, Any] = connector.to_dict()
9898

9999
assert serialized["init_parameters"]["pipeline_name"] == "test_pipeline"
100-
assert serialized["init_parameters"]["weave_init_kwargs"] == {
101-
"settings": {"implicitly_patch_integrations": False}
102-
}
100+
assert serialized["init_parameters"]["weave_init_kwargs"]["settings"]["implicitly_patch_integrations"] is False
103101
assert "type" in serialized
104102
assert serialized["type"] == "haystack_integrations.components.connectors.weave.weave_connector.WeaveConnector"
105103

@@ -108,7 +106,7 @@ def test_serialization_of_weave_init_kwargs_with_user_settings(self) -> None:
108106
assert isinstance(deserialized, WeaveConnector)
109107
assert deserialized.pipeline_name == "test_pipeline"
110108
assert deserialized.tracer is None # tracer is only initialized with warm_up
111-
assert deserialized.weave_init_kwargs == {"settings": {"implicitly_patch_integrations": False}}
109+
assert deserialized.weave_init_kwargs["settings"]["implicitly_patch_integrations"] is False
112110

113111
def test_pipeline_tracing(self, mock_weave_client: Mock, sample_pipeline: Pipeline) -> None:
114112
"""Test that pipeline operations are correctly traced"""

0 commit comments

Comments
 (0)