Files
deepset-ai--haystack/haystack/utils/deserialization.py
Amanpreet Singh d1253c48fe chore!: remove deprecated deserialize_document_store_in_init_params_in… (#10454)
* chore: remove deprecated deserialize_document_store_in_init_params_inplace

This function was deprecated in 2.23.0 and is no longer used internally.
Removed the function, its exports, its tests, and the deprecation release note.

* Restore deserialize_document_store_in_init_params_in_init_params_inplace

* chore: add release note and fix formatting

* fix: resolve lint errors and formatting
2026-01-28 17:04:58 +01:00

57 lines
2.1 KiB
Python

# SPDX-FileCopyrightText: 2022-present deepset GmbH <info@deepset.ai>
#
# SPDX-License-Identifier: Apache-2.0
from typing import Any
from haystack.core.errors import DeserializationError
from haystack.core.serialization import component_from_dict, import_class_by_name
def deserialize_chatgenerator_inplace(data: dict[str, Any], key: str = "chat_generator") -> None:
"""
Deserialize a ChatGenerator in a dictionary inplace.
:param data:
The dictionary with the serialized data.
:param key:
The key in the dictionary where the ChatGenerator is stored.
:raises DeserializationError:
If the key is missing in the serialized data, the value is not a dictionary,
the type key is missing, the class cannot be imported, or the class lacks a 'from_dict' method.
"""
deserialize_component_inplace(data, key=key)
def deserialize_component_inplace(data: dict[str, Any], key: str = "chat_generator") -> None:
"""
Deserialize a Component in a dictionary inplace.
:param data:
The dictionary with the serialized data.
:param key:
The key in the dictionary where the Component is stored. Default is "chat_generator".
:raises DeserializationError:
If the key is missing in the serialized data, the value is not a dictionary,
the type key is missing, the class cannot be imported, or the class lacks a 'from_dict' method.
"""
if key not in data:
raise DeserializationError(f"Missing '{key}' in serialization data")
serialized_component = data[key]
if not isinstance(serialized_component, dict):
raise DeserializationError(f"The value of '{key}' is not a dictionary")
if "type" not in serialized_component:
raise DeserializationError(f"Missing 'type' in {key} serialization data")
try:
component_class = import_class_by_name(serialized_component["type"])
except ImportError as e:
raise DeserializationError(f"Class '{serialized_component['type']}' not correctly imported") from e
data[key] = component_from_dict(cls=component_class, data=serialized_component, name=key)