Skip to content

Commit f344155

Browse files
committed
Prevent saving empty datasets by adding validation and error messages in multiple languages
1 parent 9965e96 commit f344155

7 files changed

Lines changed: 28 additions & 8 deletions

File tree

DashAI/back/dataloaders/classes/dashai_dataset.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,9 @@ def _compute_numeric_metadata(self, dataset_df) -> dict:
264264
dict
265265
Dictionary with statistics for each numeric column.
266266
"""
267-
numeric_keys = self._get_numeric_columns()
267+
numeric_keys = [
268+
k for k in self._get_numeric_columns() if k in dataset_df.columns
269+
]
268270
numeric_cols = dataset_df[numeric_keys]
269271
numeric_stats = {}
270272

@@ -316,7 +318,9 @@ def _compute_categorical_metadata(self, dataset_df) -> dict:
316318
dict
317319
Dictionary with statistics for each categorical column.
318320
"""
319-
categorical_keys = self._get_categorical_columns()
321+
categorical_keys = [
322+
k for k in self._get_categorical_columns() if k in dataset_df.columns
323+
]
320324
categorical_cols = dataset_df[categorical_keys]
321325
categorical_stats = {}
322326

@@ -465,7 +469,9 @@ def _compute_correlations(self, dataset_df) -> dict:
465469
dict
466470
Nested dictionary representing the correlation matrix.
467471
"""
468-
numeric_keys = self._get_numeric_columns()
472+
numeric_keys = [
473+
k for k in self._get_numeric_columns() if k in dataset_df.columns
474+
]
469475
numeric_cols = dataset_df[numeric_keys]
470476

471477
if numeric_cols.empty:

DashAI/front/src/components/notebooks/notebook/DatasetPreviewNotebook.jsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,15 @@ export default function DatasetPreviewNotebook({
248248
endIcon={<Add />}
249249
onClick={(e) => {
250250
e.stopPropagation();
251+
if (
252+
convertersLoaded &&
253+
Object.keys(localColumnTypes).length === 0
254+
) {
255+
enqueueSnackbar(t("datasets:error.cannotSaveEmptyDataset"), {
256+
variant: "error",
257+
});
258+
return;
259+
}
251260
setShowSaveDatasetModal(true);
252261
if (tourContext && tourContext.run) {
253262
setTimeout(() => {

DashAI/front/src/utils/i18n/locales/de/datasets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@
9393
"requiresExactColumns_other": "Erfordert genau {{required}} gültige Spalten, aber {{available}} verfügbar.",
9494
"requiresMinColumns_one": "Erfordert mindestens {{required}} gültige Spalte, aber nur {{available}} verfügbar.",
9595
"requiresMinColumns_other": "Erfordert mindestens {{required}} gültige Spalten, aber nur {{available}} verfügbar.",
96-
"zipContentsNotCompatible": "ZIP enthält keine mit dem ausgewählten Datenlader kompatiblen Dateien"
96+
"zipContentsNotCompatible": "ZIP enthält keine mit dem ausgewählten Datenlader kompatiblen Dateien",
97+
"cannotSaveEmptyDataset": "Dataset kann nicht gespeichert werden: Alle Spalten wurden entfernt. Fügen Sie Spalten hinzu, bevor Sie speichern."
9798
},
9899
"label": {
99100
"task": "Aufgabe",

DashAI/front/src/utils/i18n/locales/en/datasets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@
9191
"requiresExactColumns_other": "Requires exactly {{required}} valid columns, but {{available}} available.",
9292
"requiresMinColumns_one": "Requires at least {{required}} valid column, but only {{available}} available.",
9393
"requiresMinColumns_other": "Requires at least {{required}} valid columns, but only {{available}} available.",
94-
"zipContentsNotCompatible": "ZIP does not contain files compatible with the selected dataloader"
94+
"zipContentsNotCompatible": "ZIP does not contain files compatible with the selected dataloader",
95+
"cannotSaveEmptyDataset": "Cannot save dataset: all columns have been removed. Add columns before saving."
9596
},
9697
"label": {
9798
"task": "Task",

DashAI/front/src/utils/i18n/locales/es/datasets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@
9696
"requiresMinColumns_one": "Requiere al menos {{required}} columna válida, pero solo {{available}} disponible.",
9797
"requiresMinColumns_many": "Requiere al menos {{required}} columnas válidas, pero solo {{available}} disponibles.",
9898
"requiresMinColumns_other": "Requiere al menos {{required}} columnas válidas, pero solo {{available}} disponibles.",
99-
"zipContentsNotCompatible": "El ZIP no contiene archivos compatibles con el dataloader seleccionado"
99+
"zipContentsNotCompatible": "El ZIP no contiene archivos compatibles con el dataloader seleccionado",
100+
"cannotSaveEmptyDataset": "No se puede guardar el dataset: se eliminaron todas las columnas. Agrega columnas antes de guardar."
100101
},
101102
"label": {
102103
"task": "Tarea",

DashAI/front/src/utils/i18n/locales/pt/datasets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@
9696
"requiresMinColumns_one": "Requer pelo menos {{required}} coluna válida, mas apenas {{available}} disponível.",
9797
"requiresMinColumns_many": "Requer pelo menos {{required}} colunas válidas, mas apenas {{available}} disponíveis.",
9898
"requiresMinColumns_other": "Requer pelo menos {{required}} colunas válidas, mas apenas {{available}} disponíveis.",
99-
"zipContentsNotCompatible": "O arquivo ZIP não contém arquivos compatíveis com o dataloader selecionado"
99+
"zipContentsNotCompatible": "O arquivo ZIP não contém arquivos compatíveis com o dataloader selecionado",
100+
"cannotSaveEmptyDataset": "Não é possível salvar o dataset: todas as colunas foram removidas. Adicione colunas antes de salvar."
100101
},
101102
"label": {
102103
"task": "Tarefa",

DashAI/front/src/utils/i18n/locales/zh/datasets.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@
9292
"requiresExactColumns_other": "需要恰好 {{required}} 个有效列,但只有 {{available}} 个可用。",
9393
"requiresMinColumns_one": "至少需要 {{required}} 个有效列,但只有 {{available}} 个可用。",
9494
"requiresMinColumns_other": "至少需要 {{required}} 个有效列,但只有 {{available}} 个可用。",
95-
"zipContentsNotCompatible": "ZIP 文件不包含与所选数据加载器兼容的文件"
95+
"zipContentsNotCompatible": "ZIP 文件不包含与所选数据加载器兼容的文件",
96+
"cannotSaveEmptyDataset": "无法保存数据集:所有列已被删除,请在保存前添加列。"
9697
},
9798
"label": {
9899
"task": "任务",

0 commit comments

Comments
 (0)