Skip to content

Commit

Permalink
fix: 🐛 reject blocked datasets in /rows endpoint too
Browse files Browse the repository at this point in the history
also: move control on blocked datasets from /models to /routes
  • Loading branch information
severo committed Jan 25, 2022
1 parent 92a6482 commit 5ba89ac
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 7 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
authors = ["Sylvain Lesage <[email protected]>"]
description = "API to extract rows of 🤗 datasets"
name = "datasets-preview-backend"
version = "0.16.4"
version = "0.16.5"

[tool.poetry.dependencies]
Pillow = "^8.4.0"
Expand Down
4 changes: 1 addition & 3 deletions src/datasets_preview_backend/models/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from datasets import get_dataset_config_names, get_dataset_split_names

from datasets_preview_backend.constants import DATASETS_BLOCKLIST, FORCE_REDOWNLOAD
from datasets_preview_backend.constants import FORCE_REDOWNLOAD
from datasets_preview_backend.exceptions import Status400Error

logger = logging.getLogger(__name__)
Expand All @@ -17,8 +17,6 @@ class SplitFullName(TypedDict):

def get_dataset_split_full_names(dataset_name: str, hf_token: Optional[str] = None) -> List[SplitFullName]:
logger.info(f"get dataset '{dataset_name}' split full names")
if dataset_name in DATASETS_BLOCKLIST:
raise Status400Error("this dataset is not supported for now.")
try:
return [
{"dataset_name": dataset_name, "config_name": config_name, "split_name": split_name}
Expand Down
5 changes: 4 additions & 1 deletion src/datasets_preview_backend/routes/rows.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from starlette.responses import Response

from datasets_preview_backend.config import MAX_AGE_LONG_SECONDS
from datasets_preview_backend.exceptions import StatusError
from datasets_preview_backend.constants import DATASETS_BLOCKLIST
from datasets_preview_backend.exceptions import Status400Error, StatusError
from datasets_preview_backend.io.cache import get_rows_response
from datasets_preview_backend.routes._utils import get_response

Expand All @@ -20,6 +21,8 @@ async def rows_endpoint(request: Request) -> Response:
try:
if not isinstance(dataset_name, str) or not isinstance(config_name, str) or not isinstance(split_name, str):
raise StatusError("Parameters 'dataset', 'config' and 'split' are required", 400)
if dataset_name in DATASETS_BLOCKLIST:
raise Status400Error("this dataset is not supported for now.")
rows_response, rows_error, status_code = get_rows_response(dataset_name, config_name, split_name)
return get_response(rows_response or rows_error, status_code, MAX_AGE_LONG_SECONDS)
except StatusError as err:
Expand Down
7 changes: 5 additions & 2 deletions src/datasets_preview_backend/routes/splits.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from starlette.responses import Response

from datasets_preview_backend.config import MAX_AGE_LONG_SECONDS
from datasets_preview_backend.exceptions import StatusError
from datasets_preview_backend.constants import DATASETS_BLOCKLIST
from datasets_preview_backend.exceptions import Status400Error, StatusError
from datasets_preview_backend.io.cache import get_splits_response
from datasets_preview_backend.routes._utils import get_response

Expand All @@ -17,7 +18,9 @@ async def splits_endpoint(request: Request) -> Response:

try:
if not isinstance(dataset_name, str):
raise StatusError("Parameter 'dataset' is required", 400)
raise Status400Error("Parameter 'dataset' is required")
if dataset_name in DATASETS_BLOCKLIST:
raise Status400Error("this dataset is not supported for now.")
splits_response, splits_error, status_code = get_splits_response(dataset_name)
return get_response(splits_response or splits_error, status_code, MAX_AGE_LONG_SECONDS)
except StatusError as err:
Expand Down

0 comments on commit 5ba89ac

Please sign in to comment.