feat: Add custom exceptions to more cognee-lib modules
Added custom exceptions to more modules Feature COG-502
This commit is contained in:
parent
d4236bf385
commit
6eecc39db0
5 changed files with 17 additions and 11 deletions
|
|
@ -1,7 +1,7 @@
|
|||
""" This module is used to set the configuration of the system."""
|
||||
import os
|
||||
from cognee.base_config import get_base_config
|
||||
from cognee.exceptions import InvalidValueError
|
||||
from cognee.exceptions import InvalidValueError, InvalidAttributeError
|
||||
from cognee.modules.cognify.config import get_cognify_config
|
||||
from cognee.infrastructure.data.chunking.config import get_chunk_config
|
||||
from cognee.infrastructure.databases.vector import get_vectordb_config
|
||||
|
|
@ -86,7 +86,7 @@ class config():
|
|||
if hasattr(llm_config, key):
|
||||
object.__setattr__(llm_config, key, value)
|
||||
else:
|
||||
raise AttributeError(f"'{key}' is not a valid attribute of the config.")
|
||||
raise InvalidAttributeError(message=f"'{key}' is not a valid attribute of the config.")
|
||||
|
||||
@staticmethod
|
||||
def set_chunk_strategy(chunk_strategy: object):
|
||||
|
|
@ -124,7 +124,7 @@ class config():
|
|||
if hasattr(relational_db_config, key):
|
||||
object.__setattr__(relational_db_config, key, value)
|
||||
else:
|
||||
raise AttributeError(f"'{key}' is not a valid attribute of the config.")
|
||||
raise InvalidAttributeError(message=f"'{key}' is not a valid attribute of the config.")
|
||||
|
||||
@staticmethod
|
||||
def set_vector_db_config(config_dict: dict):
|
||||
|
|
@ -136,7 +136,7 @@ class config():
|
|||
if hasattr(vector_db_config, key):
|
||||
object.__setattr__(vector_db_config, key, value)
|
||||
else:
|
||||
raise AttributeError(f"'{key}' is not a valid attribute of the config.")
|
||||
raise InvalidAttributeError(message=f"'{key}' is not a valid attribute of the config.")
|
||||
|
||||
@staticmethod
|
||||
def set_vector_db_key(db_key: str):
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import csv
|
|||
import json
|
||||
import logging
|
||||
from datetime import datetime, timezone
|
||||
from fastapi import status
|
||||
from typing import Any, Dict, List, Optional, Union, Type
|
||||
|
||||
import aiofiles
|
||||
|
|
@ -78,7 +79,8 @@ class OntologyEngine:
|
|||
else:
|
||||
raise IngestionError(message="Unsupported file format")
|
||||
except Exception as e:
|
||||
raise RuntimeError(f"Failed to load data from {file_path}: {e}")
|
||||
raise IngestionError(message=f"Failed to load data from {file_path}: {e}",
|
||||
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY)
|
||||
|
||||
async def add_graph_ontology(self, file_path: str = None, documents: list = None):
|
||||
"""Add graph ontology from a JSON or CSV file or infer from documents content."""
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
from typing import Union, BinaryIO, Any
|
||||
|
||||
from cognee.exceptions import IngestionError
|
||||
from cognee.modules.ingestion import save_data_to_file
|
||||
|
||||
def save_data_item_with_metadata_to_storage(data_item: Union[BinaryIO, str, Any], dataset_name: str) -> str:
|
||||
|
|
@ -23,6 +25,6 @@ def save_data_item_with_metadata_to_storage(data_item: Union[BinaryIO, str, Any]
|
|||
else:
|
||||
file_path = save_data_to_file(data_item, dataset_name)
|
||||
else:
|
||||
raise ValueError(f"Data type not supported: {type(data_item)}")
|
||||
raise IngestionError(message=f"Data type not supported: {type(data_item)}")
|
||||
|
||||
return file_path
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
import numpy as np
|
||||
import pytest
|
||||
|
||||
from cognee.exceptions import InvalidValueError
|
||||
from cognee.modules.graph.cognee_graph.CogneeGraphElements import Edge, Node
|
||||
|
||||
|
||||
|
|
@ -105,7 +106,7 @@ def test_edge_invalid_dimension():
|
|||
"""Test that initializing an Edge with a non-positive dimension raises an error."""
|
||||
node1 = Node("node1")
|
||||
node2 = Node("node2")
|
||||
with pytest.raises(ValueError, match="Dimensions must be a positive integer."):
|
||||
with pytest.raises(InvalidValueError, match="Dimensions must be a positive integer."):
|
||||
Edge(node1, node2, dimension=0)
|
||||
|
||||
|
||||
|
|
@ -124,7 +125,7 @@ def test_edge_alive_invalid_dimension():
|
|||
node1 = Node("node1")
|
||||
node2 = Node("node2")
|
||||
edge = Edge(node1, node2, dimension=1)
|
||||
with pytest.raises(ValueError, match="Dimension 1 is out of range"):
|
||||
with pytest.raises(InvalidValueError, match="Dimension 1 is out of range"):
|
||||
edge.is_edge_alive_in_dimension(1)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from cognee.exceptions import InvalidValueError
|
||||
from cognee.modules.graph.cognee_graph.CogneeGraph import CogneeGraph
|
||||
from cognee.modules.graph.cognee_graph.CogneeGraphElements import Edge, Node
|
||||
|
||||
|
|
@ -23,7 +24,7 @@ def test_add_duplicate_node(setup_graph):
|
|||
graph = setup_graph
|
||||
node = Node("node1")
|
||||
graph.add_node(node)
|
||||
with pytest.raises(ValueError, match="Node with id node1 already exists."):
|
||||
with pytest.raises(InvalidValueError, match="Node with id node1 already exists."):
|
||||
graph.add_node(node)
|
||||
|
||||
|
||||
|
|
@ -50,7 +51,7 @@ def test_add_duplicate_edge(setup_graph):
|
|||
graph.add_node(node2)
|
||||
edge = Edge(node1, node2)
|
||||
graph.add_edge(edge)
|
||||
with pytest.raises(ValueError, match="Edge .* already exists in the graph."):
|
||||
with pytest.raises(InvalidValueError, match="Edge .* already exists in the graph."):
|
||||
graph.add_edge(edge)
|
||||
|
||||
|
||||
|
|
@ -83,5 +84,5 @@ def test_get_edges_success(setup_graph):
|
|||
def test_get_edges_nonexistent_node(setup_graph):
|
||||
"""Test retrieving edges for a nonexistent node raises an exception."""
|
||||
graph = setup_graph
|
||||
with pytest.raises(ValueError, match="Node with id nonexistent does not exist."):
|
||||
with pytest.raises(InvalidValueError, match="Node with id nonexistent does not exist."):
|
||||
graph.get_edges("nonexistent")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue