From 2203972ed49a97c4398116310a3ef2d607d23614 Mon Sep 17 00:00:00 2001 From: dangotbanned <125183946+dangotbanned@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:26:04 +0000 Subject: [PATCH] refactor: Simplify obsolete paths in `CsvCache` They were an artifact of *previously* using multiple `vega-dataset` versions in `.paquet` - but only the most recent in `.csv.gz` Currently both store the same range of names, so this error handling never triggered --- altair/datasets/_cache.py | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/altair/datasets/_cache.py b/altair/datasets/_cache.py index 9abe09726..13dca2f23 100644 --- a/altair/datasets/_cache.py +++ b/altair/datasets/_cache.py @@ -5,12 +5,11 @@ from collections import defaultdict from importlib.util import find_spec from pathlib import Path -from typing import TYPE_CHECKING, ClassVar, TypeVar, cast, get_args +from typing import TYPE_CHECKING, ClassVar, TypeVar, cast import narwhals.stable.v1 as nw from altair.datasets._exceptions import AltairDatasetsError -from altair.datasets._typing import Dataset if sys.version_info >= (3, 12): from typing import Protocol @@ -34,7 +33,7 @@ from narwhals.stable.v1.dtypes import DType from narwhals.stable.v1.typing import IntoExpr - from altair.datasets._typing import Metadata + from altair.datasets._typing import Dataset, Metadata if sys.version_info >= (3, 12): from typing import Unpack @@ -188,31 +187,17 @@ def rotated(self) -> Mapping[str, Sequence[Any]]: self._rotated[k].append(v) return self._rotated - # TODO: Evaluate which errors are now obsolete def __getitem__(self, key: _Dataset, /) -> Metadata: if meta := self.get(key, None): return meta + msg = f"{key!r} does not refer to a known dataset." + raise TypeError(msg) - if key in get_args(Dataset): - msg = f"{key!r} cannot be loaded via {type(self).__name__!r}." - raise TypeError(msg) - else: - msg = f"{key!r} does not refer to a known dataset." - raise TypeError(msg) - - # TODO: Evaluate which errors are now obsolete def url(self, name: _Dataset, /) -> str: - if meta := self.get(name, None): - if meta["suffix"] == ".parquet" and not find_spec("vegafusion"): - raise AltairDatasetsError.from_url(meta) - return meta["url"] - - if name in get_args(Dataset): - msg = f"{name!r} cannot be loaded via url." - raise TypeError(msg) - else: - msg = f"{name!r} does not refer to a known dataset." - raise TypeError(msg) + meta = self[name] + if meta["suffix"] == ".parquet" and not find_spec("vegafusion"): + raise AltairDatasetsError.from_url(meta) + return meta["url"] def __repr__(self) -> str: return f"<{type(self).__name__}: {'COLLECTED' if self._mapping else 'READY'}>"