From f93e45b82712ab9abb5096854f6c3ded89830c3c Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Tue, 3 Mar 2026 13:13:40 +0000 Subject: [PATCH] fix(dataset): silent erros if dataset did not exist --- server/analysis/enrichment.py | 2 +- server/core/datasets.py | 27 +++++++++++++-------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/server/analysis/enrichment.py b/server/analysis/enrichment.py index 065caea..cc9694c 100644 --- a/server/analysis/enrichment.py +++ b/server/analysis/enrichment.py @@ -3,7 +3,7 @@ import pandas as pd from server.analysis.nlp import NLP class DatasetEnrichment: - def __init__(self, df, topics): + def __init__(self, df: pd.DataFrame, topics: dict): self.df = self._explode_comments(df) self.topics = topics self.nlp = NLP(self.df, "title", "content", self.topics) diff --git a/server/core/datasets.py b/server/core/datasets.py index f7081ec..a1835e6 100644 --- a/server/core/datasets.py +++ b/server/core/datasets.py @@ -1,7 +1,7 @@ import pandas as pd from server.db.database import PostgresConnector from psycopg2.extras import Json -from server.exceptions import NotAuthorisedException +from server.exceptions import NotAuthorisedException, NonExistentDatasetException class DatasetManager: def __init__(self, db: PostgresConnector): @@ -23,21 +23,20 @@ class DatasetManager: def get_dataset_info(self, dataset_id: int) -> dict: query = "SELECT * FROM datasets WHERE id = %s" result = self.db.execute(query, (dataset_id,), fetch=True) - return result[0] if result else None + + if not result: + raise NonExistentDatasetException(f"Dataset {dataset_id} does not exist") + + return result[0] def save_dataset_info(self, user_id: int, dataset_name: str, topics: dict) -> int: - query = """ - INSERT INTO datasets (user_id, name, topics) - VALUES (%s, %s, %s) - RETURNING id - """ - result = self.db.execute(query, (user_id, dataset_name, Json(topics)), fetch=True) - return result[0]["id"] if result else None - - def get_dataset_content(self, dataset_id: int) -> pd.DataFrame: - query = "SELECT * FROM events WHERE dataset_id = %s" - result = self.db.execute(query, (dataset_id,), fetch=True) - return pd.DataFrame(result) + query = """ + INSERT INTO datasets (user_id, name, topics) + VALUES (%s, %s, %s) + RETURNING id + """ + result = self.db.execute(query, (user_id, dataset_name, Json(topics)), fetch=True) + return result[0]["id"] if result else None def save_dataset_content(self, dataset_id: int, event_data: pd.DataFrame): if event_data.empty: