From f91570a359bbcfa55f3fd1796dd40671e24dc91f Mon Sep 17 00:00:00 2001 From: Preston Rasmussen <109292228+prasmussen15@users.noreply.github.com> Date: Thu, 27 Mar 2025 10:45:06 -0400 Subject: [PATCH] update get edges by uuids (#307) * update get edges by uuids * Update graphiti_core/errors.py Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * remove sample test --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- graphiti_core/edges.py | 7 +++++-- graphiti_core/errors.py | 8 ++++++++ pyproject.toml | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/graphiti_core/edges.py b/graphiti_core/edges.py index 9debd923..83a13c1a 100644 --- a/graphiti_core/edges.py +++ b/graphiti_core/edges.py @@ -26,7 +26,7 @@ from pydantic import BaseModel, Field from typing_extensions import LiteralString from graphiti_core.embedder import EmbedderClient -from graphiti_core.errors import EdgeNotFoundError, GroupsEdgesNotFoundError +from graphiti_core.errors import EdgeNotFoundError, EdgesNotFoundError, GroupsEdgesNotFoundError from graphiti_core.helpers import DEFAULT_DATABASE, parse_db_date from graphiti_core.models.edges.edge_db_queries import ( COMMUNITY_EDGE_SAVE, @@ -261,6 +261,9 @@ class EntityEdge(Edge): @classmethod async def get_by_uuids(cls, driver: AsyncDriver, uuids: list[str]): + if len(uuids) == 0: + return [] + records, _, _ = await driver.execute_query( """ MATCH (n:Entity)-[e:RELATES_TO]->(m:Entity) @@ -287,7 +290,7 @@ class EntityEdge(Edge): edges = [get_entity_edge_from_record(record) for record in records] if len(edges) == 0: - raise EdgeNotFoundError(uuids[0]) + raise EdgesNotFoundError(uuids) return edges @classmethod diff --git a/graphiti_core/errors.py b/graphiti_core/errors.py index cdf74e95..959dbb93 100644 --- a/graphiti_core/errors.py +++ b/graphiti_core/errors.py @@ -27,6 +27,14 @@ class EdgeNotFoundError(GraphitiError): super().__init__(self.message) +class EdgesNotFoundError(GraphitiError): + """Raised when a list of edges is not found.""" + + def __init__(self, uuids: list[str]): + self.message = f'None of the edges for {uuids} were found.' + super().__init__(self.message) + + class GroupsEdgesNotFoundError(GraphitiError): """Raised when no edges are found for a list of group ids.""" diff --git a/pyproject.toml b/pyproject.toml index b39c6d49..b26761b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "graphiti-core" -version = "0.8.3" +version = "0.8.4" description = "A temporal graph building library" authors = [ "Paul Paliychuk ",