Spaces:
Running
Running
| # core/loader.py | |
| from datasets import load_dataset | |
| import os | |
| class DatasetLoader: | |
| def __init__(self): | |
| print("DatasetLoader geladen") | |
| self.hf_token = os.getenv("HF_TOKEN", None) | |
| self.datasets = { | |
| "matrix_game": "Skywork/Matrix-Game-3.0", | |
| "framework_storage": "sky-meilin/SkyAiFramework-storage" | |
| } | |
| def list_datasets(self): | |
| return list(self.datasets.keys()) | |
| def load(self, dataset_name: str, name: str = None): | |
| if dataset_name not in self.datasets: | |
| raise ValueError( | |
| f"Dataset '{dataset_name}' nicht registriert." | |
| ) | |
| dataset_path = self.datasets[dataset_name] | |
| try: | |
| # name erlaubt das Laden von Unterordnern/Konfigurationen, falls nötig | |
| dataset = load_dataset( | |
| dataset_path, | |
| name=name, | |
| token=self.hf_token | |
| ) | |
| return dataset | |
| except Exception as e: | |
| raise RuntimeError(f"Fehler beim Laden von {dataset_name}: {str(e)}") | |
| def load_split(self, dataset_name: str, split: str = None, name: str = None): | |
| dataset = self.load(dataset_name, name=name) | |
| # Falls das Dataset direkt ein einzelnes Dataset ist (kein Dict mit Splits) | |
| if not hasattr(dataset, "keys"): | |
| return dataset | |
| if split is None: | |
| split = list(dataset.keys())[0] | |
| if split not in dataset: | |
| raise ValueError( | |
| f"Split '{split}' existiert nicht. Verfügbar: {list(dataset.keys())}" | |
| ) | |
| return dataset[split] | |