FoundationAgents/MetaGPT · error · FileNotFoundError
Raw dataset `train.csv` not found in {raw_dir}
Error message
Raw dataset `train.csv` not found in {raw_dir} What it means
Raised by ExpDataset.get_raw_dataset when <dataset_dir>/<name>/raw/train.csv does not exist. SELA expects raw tabular data to have been placed under the dataset's raw/ subdirectory before splitting/analysis; train.csv is mandatory while test.csv is optional.
Source
Thrown at metagpt/ext/sela/data/dataset.py:235
"split_dev_wo_target.csv",
"split_dev_target.csv",
"split_test_wo_target.csv",
"split_test_target.csv",
]
for fname in fnames:
if not os.path.exists(Path(self.dataset_dir, self.name, fname)):
return False
return True
def check_datasetinfo_exists(self):
return os.path.exists(Path(self.dataset_dir, self.name, "dataset_info.json"))
def get_raw_dataset(self):
raw_dir = Path(self.dataset_dir, self.name, "raw")
train_df = None
test_df = None
if not os.path.exists(Path(raw_dir, "train.csv")):
raise FileNotFoundError(f"Raw dataset `train.csv` not found in {raw_dir}")
else:
train_df = pd.read_csv(Path(raw_dir, "train.csv"))
if os.path.exists(Path(raw_dir, "test.csv")):
test_df = pd.read_csv(Path(raw_dir, "test.csv"))
return train_df, test_df
def get_dataset_info(self):
raw_df = pd.read_csv(Path(self.dataset_dir, self.name, "raw", "train.csv"))
metadata = {
"NumberOfClasses": raw_df[self.target_col].nunique(),
"NumberOfFeatures": raw_df.shape[1],
"NumberOfInstances": raw_df.shape[0],
"NumberOfInstancesWithMissingValues": int(raw_df.isnull().any(axis=1).sum()),
"NumberOfMissingValues": int(raw_df.isnull().sum().sum()),
"NumberOfNumericFeatures": raw_df.select_dtypes(include=["number"]).shape[1],
"NumberOfSymbolicFeatures": raw_df.select_dtypes(include=["object"]).shape[1],
}
View on GitHub (pinned to 11cdf466d0)
Solutions
- Place (or download) your data as dataset_dir/<name>/raw/train.csv
- Check the datasets_dir path in your config resolves to where the data actually lives
- Re-run the SELA dataset preparation pipeline for that dataset
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
raw = Path(dataset_dir, name, "raw")
if not (raw / "train.csv").exists():
download/prepare data first Type guard
def raw_train_exists(dataset_dir, name) -> bool:
from pathlib import Path
return (Path(dataset_dir) / name / "raw" / "train.csv").is_file() Try / catch
try:
df, test_df = ds.get_raw_dataset()
except FileNotFoundError as e:
raise RuntimeError(f"prepare data first: {e}") from e Prevention
- Run the dataset preparation step as part of setup
- Standardize on raw/train.csv naming for all datasets
When it happens
Trigger: Calling get_raw_dataset (directly or via save_dataset / create_dataset_dict) before downloading the raw data into dataset_dir/name/raw/, or when the directory layout/naming differs (e.g. train data stored under a different filename).
Common situations: Skipped the dataset-preparation step (python -m metagpt.ext.sela.data.dataset or the documented download script); wrong dataset_dir configured; file named data.csv instead of train.csv.
Related errors
- Dataset {dataset_name} not found in config file. Available d
- Dataset {task_name} not found in config file. Available data
- Number of classes {num_classes} not supported
- Target column not provided
- Dataset {task_name} not found in config file. Available data
AI-assisted analysis of FoundationAgents/MetaGPT@11cdf466d0 (2026-08-14).
Data as JSON: /api/errors/9b901c4ddf6a030f.
Report an issue: GitHub.