Merge dicts directly
This commit is contained in:
parent
fde56f0c3b
commit
b18f748c9e
1 changed files with 5 additions and 20 deletions
|
|
@ -6,20 +6,6 @@ from cognee.infrastructure.engine import DataPoint
|
||||||
from cognee.modules.storage.utils import copy_model
|
from cognee.modules.storage.utils import copy_model
|
||||||
|
|
||||||
|
|
||||||
def merge_dicts(dict1: dict, dict2: dict, agg_fn: Callable) -> dict:
|
|
||||||
merged_dict = {}
|
|
||||||
for key, value in dict1.items():
|
|
||||||
if key in dict2:
|
|
||||||
merged_dict[key] = agg_fn(value, dict2[key])
|
|
||||||
else:
|
|
||||||
merged_dict[key] = value
|
|
||||||
|
|
||||||
for key, value in dict2.items():
|
|
||||||
if key not in merged_dict:
|
|
||||||
merged_dict[key] = value
|
|
||||||
return merged_dict
|
|
||||||
|
|
||||||
|
|
||||||
def get_model_instance_from_graph(
|
def get_model_instance_from_graph(
|
||||||
nodes: list[DataPoint],
|
nodes: list[DataPoint],
|
||||||
edges: list[tuple[str, str, str, dict[str, str]]],
|
edges: list[tuple[str, str, str, dict[str, str]]],
|
||||||
|
|
@ -38,12 +24,11 @@ def get_model_instance_from_graph(
|
||||||
type(source_node),
|
type(source_node),
|
||||||
{edge_label: (list[type(target_node)], PydanticUndefined)},
|
{edge_label: (list[type(target_node)], PydanticUndefined)},
|
||||||
)
|
)
|
||||||
new_model_dict = merge_dicts(
|
source_node_dict = source_node.model_dump()
|
||||||
source_node.model_dump(),
|
source_node_edge_label_values = source_node_dict.get(edge_label, [])
|
||||||
{edge_label: [target_node]},
|
source_node_dict[edge_label] = source_node_edge_label_values + [target_node]
|
||||||
lambda a, b: a + b,
|
|
||||||
)
|
node_map[source_node_id] = NewModel(**source_node_dict)
|
||||||
node_map[source_node_id] = NewModel(**new_model_dict)
|
|
||||||
else:
|
else:
|
||||||
NewModel = copy_model(
|
NewModel = copy_model(
|
||||||
type(source_node), {edge_label: (type(target_node), PydanticUndefined)}
|
type(source_node), {edge_label: (type(target_node), PydanticUndefined)}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue