def get_dataset_status()

in front/admin_ui/app.py [0:0]


                def get_dataset_status(token, dataset):
                    headers = {"Authorization": f"Bearer {token}"}
                    response = requests.get(
                        f"{DV_ENDPOINT}/admin/dataset-status?dataset={dataset}",
                        headers=headers,
                        timeout=60,
                    )
                    if response.status_code == 200:
                        dataset_status = response.json()
                        cached_responses_df = pd.DataFrame(
                            [
                                {
                                    "kind": cached_response["kind"],
                                    "dataset": cached_response["dataset"],
                                    "config": cached_response["config"],
                                    "split": cached_response["split"],
                                    "http_status": cached_response["http_status"],
                                    "error_code": cached_response["error_code"],
                                    "job_runner_version": cached_response[
                                        "job_runner_version"
                                    ],
                                    "dataset_git_revision": cached_response[
                                        "dataset_git_revision"
                                    ],
                                    "progress": cached_response["progress"],
                                    "updated_at": cached_response["updated_at"],
                                    "failed_runs": cached_response["failed_runs"],
                                    "details": json.dumps(cached_response["details"]),
                                }
                                for content in dataset_status.values()
                                for cached_response in content["cached_responses"]
                            ]
                        )
                        jobs_df = pd.DataFrame(
                            [
                                {
                                    "type": job["type"],
                                    "dataset": job["dataset"],
                                    "revision": job["revision"],
                                    "config": job["config"],
                                    "split": job["split"],
                                    "namespace": job["namespace"],
                                    "priority": job["priority"],
                                    "status": job["status"],
                                    "difficulty": job["difficulty"],
                                    "created_at": job["created_at"],
                                    "started_at": job["started_at"],
                                    "last_heartbeat": job["last_heartbeat"],
                                }
                                for content in dataset_status.values()
                                for job in content["jobs"]
                            ]
                        )
                        return {
                            cached_responses_table: gr.DataFrame(
                                value=cached_responses_df
                            ),
                            jobs_table: gr.DataFrame(value=jobs_df),
                        }
                    else:
                        return {
                            cached_responses_table: gr.DataFrame(
                                value=pd.DataFrame(
                                    [
                                        {
                                            "error": f"❌ Failed to get status for {dataset} (error {response.status_code})"
                                        }
                                    ]
                                )
                            ),
                            jobs_table: gr.DataFrame(
                                value=pd.DataFrame([{"content": str(response.content)}])
                            ),
                        }