chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
"""
|
||||
Configuration file listing all datasets used in tests.
|
||||
|
||||
This file is used by the CI pipeline to pre-download datasets before running tests.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TypedDict
|
||||
|
||||
|
||||
class DictKwargs(TypedDict, total=False):
|
||||
subset: str
|
||||
categories: list[str]
|
||||
|
||||
|
||||
class Dataset(TypedDict):
|
||||
name: str
|
||||
kwargs: DictKwargs
|
||||
|
||||
|
||||
# Shap datasets that download from URLs
|
||||
SHAP_DATASETS = [
|
||||
"imagenet50",
|
||||
"california",
|
||||
"imdb",
|
||||
"adult",
|
||||
"nhanesi",
|
||||
"a1a",
|
||||
"rank",
|
||||
"linnerud",
|
||||
"diabetes",
|
||||
"iris",
|
||||
]
|
||||
|
||||
# Sklearn datasets that need to be fetched (download from internet)
|
||||
SKLEARN_FETCH_DATASETS: list[Dataset] = [
|
||||
{
|
||||
"name": "fetch_california_housing",
|
||||
"kwargs": {},
|
||||
},
|
||||
{
|
||||
"name": "fetch_20newsgroups",
|
||||
"kwargs": {"subset": "train", "categories": ["alt.atheism", "talk.religion.misc"]},
|
||||
},
|
||||
{
|
||||
"name": "fetch_20newsgroups",
|
||||
"kwargs": {"subset": "test", "categories": ["alt.atheism", "talk.religion.misc"]},
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def download_all_datasets():
|
||||
"""Download all datasets used in tests."""
|
||||
from sklearn import datasets as sklearn_datasets
|
||||
|
||||
import shap
|
||||
|
||||
print("Downloading shap datasets...")
|
||||
for dataset_name in SHAP_DATASETS:
|
||||
try:
|
||||
dataset_func = getattr(shap.datasets, dataset_name)
|
||||
print(f" - {dataset_name}...", end=" ")
|
||||
dataset_func()
|
||||
print("✓")
|
||||
except Exception as e:
|
||||
print(f"✗ (Error: {e})")
|
||||
|
||||
print("\nFetching sklearn datasets...")
|
||||
for dataset_config in SKLEARN_FETCH_DATASETS:
|
||||
try:
|
||||
dataset_func = getattr(sklearn_datasets, dataset_config["name"])
|
||||
kwargs_str = ", ".join(f"{k}={v}" for k, v in dataset_config["kwargs"].items())
|
||||
print(f" - {dataset_config['name']}({kwargs_str})...", end=" ")
|
||||
dataset_func(**dataset_config["kwargs"])
|
||||
print("✓")
|
||||
except Exception as e:
|
||||
print(f"✗ (Error: {e})")
|
||||
|
||||
print("\nAll datasets processed!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
download_all_datasets()
|
||||
Reference in New Issue
Block a user