Spaces:
Sleeping
Sleeping
| """ | |
| Endpoints لاستعراض الـ datasets المتاحة. | |
| GET /api/v1/datasets - قائمة الـ datasets (للـ Frontend dropdown) | |
| GET /api/v1/datasets/{id} - تفاصيل dataset واحد | |
| """ | |
| from __future__ import annotations | |
| from typing import Any, Dict, List | |
| from fastapi import APIRouter, HTTPException | |
| from app.datasets.registry import get_dataset, list_datasets | |
| router = APIRouter() | |
| def _serialize(meta) -> Dict[str, Any]: | |
| return { | |
| "id": meta.id, | |
| "name": meta.name, | |
| "name_ar": meta.name_ar, | |
| "domain": meta.domain.value, | |
| "source": meta.source.value, | |
| "size_estimate_rows": meta.size_estimate_rows, | |
| "has_timestamp": meta.has_timestamp, | |
| "has_user_metadata": meta.has_user_metadata, | |
| "has_engagement": meta.has_engagement, | |
| "language": meta.language, | |
| "license": meta.license, | |
| "description_ar": meta.description_ar, | |
| "homepage": meta.homepage, | |
| } | |
| def list_all() -> List[Dict[str, Any]]: | |
| return [_serialize(m) for m in list_datasets()] | |
| def get_one(dataset_id: str) -> Dict[str, Any]: | |
| meta = get_dataset(dataset_id) | |
| if meta is None: | |
| raise HTTPException(status_code=404, detail="Dataset not found") | |
| return _serialize(meta) | |