Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions cognee/modules/graph/utils/convert_node_to_data_point.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
from cognee.infrastructure.engine import DataPoint

_SUBCLASS_CACHE = {}


def convert_node_to_data_point(node_data: dict) -> DataPoint:
subclass = find_subclass_by_name(DataPoint, node_data["type"])

return subclass(**node_data)


Expand All @@ -17,8 +18,10 @@ def get_all_subclasses(cls):


def find_subclass_by_name(cls, name):
for subclass in get_all_subclasses(cls):
if subclass.__name__ == name:
return subclass

return None
# Use cached mapping for efficiency
cache = _SUBCLASS_CACHE.get(cls)
if cache is None:
# Build dict mapping class names to subclasses
cache = {subclass.__name__: subclass for subclass in get_all_subclasses(cls)}
_SUBCLASS_CACHE[cls] = cache
return cache.get(name, None)