{"record":{"id":"9b901c4ddf6a030f","repo":"FoundationAgents/MetaGPT","slug":"raw-dataset-train-csv-not-found-in-raw-dir","errorCode":null,"errorMessage":"Raw dataset `train.csv` not found in {raw_dir}","messagePattern":"Raw dataset `train\\.csv` not found in (.+?)","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"metagpt/ext/sela/data/dataset.py","lineNumber":235,"sourceCode":"            \"split_dev_wo_target.csv\",\n            \"split_dev_target.csv\",\n            \"split_test_wo_target.csv\",\n            \"split_test_target.csv\",\n        ]\n        for fname in fnames:\n            if not os.path.exists(Path(self.dataset_dir, self.name, fname)):\n                return False\n        return True\n\n    def check_datasetinfo_exists(self):\n        return os.path.exists(Path(self.dataset_dir, self.name, \"dataset_info.json\"))\n\n    def get_raw_dataset(self):\n        raw_dir = Path(self.dataset_dir, self.name, \"raw\")\n        train_df = None\n        test_df = None\n        if not os.path.exists(Path(raw_dir, \"train.csv\")):\n            raise FileNotFoundError(f\"Raw dataset `train.csv` not found in {raw_dir}\")\n        else:\n            train_df = pd.read_csv(Path(raw_dir, \"train.csv\"))\n        if os.path.exists(Path(raw_dir, \"test.csv\")):\n            test_df = pd.read_csv(Path(raw_dir, \"test.csv\"))\n        return train_df, test_df\n\n    def get_dataset_info(self):\n        raw_df = pd.read_csv(Path(self.dataset_dir, self.name, \"raw\", \"train.csv\"))\n        metadata = {\n            \"NumberOfClasses\": raw_df[self.target_col].nunique(),\n            \"NumberOfFeatures\": raw_df.shape[1],\n            \"NumberOfInstances\": raw_df.shape[0],\n            \"NumberOfInstancesWithMissingValues\": int(raw_df.isnull().any(axis=1).sum()),\n            \"NumberOfMissingValues\": int(raw_df.isnull().sum().sum()),\n            \"NumberOfNumericFeatures\": raw_df.select_dtypes(include=[\"number\"]).shape[1],\n            \"NumberOfSymbolicFeatures\": raw_df.select_dtypes(include=[\"object\"]).shape[1],\n        }\n","sourceCodeStart":217,"sourceCodeEnd":253,"githubUrl":"https://github.com/FoundationAgents/MetaGPT/blob/11cdf466d042aece04fc6cfd13b28e1a70341b1f/metagpt/ext/sela/data/dataset.py#L217-L253","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"from pathlib import Path\nraw = Path(dataset_dir, name, \"raw\")\nif not (raw / \"train.csv\").exists():\n    download/prepare data first","typeGuard":"def raw_train_exists(dataset_dir, name) -> bool:\n    from pathlib import Path\n    return (Path(dataset_dir) / name / \"raw\" / \"train.csv\").is_file()","tryCatchPattern":"try:\n    df, test_df = ds.get_raw_dataset()\nexcept FileNotFoundError as e:\n    raise RuntimeError(f\"prepare data first: {e}\") from e","preventionTips":["Run the dataset preparation step as part of setup","Standardize on raw/train.csv naming for all datasets"],"tags":["sela","dataset","file-not-found","setup"],"backgroundTag":null,"analyzedSha":"11cdf466d042aece04fc6cfd13b28e1a70341b1f","analyzedAt":"2026-08-14T23:20:02.994Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}