Skip to content

Commit e7974d9

Browse files
committed
fix: Use stable narwhals imports
narwhals-dev/narwhals#1426, #3693 (comment)
1 parent de03046 commit e7974d9

File tree

4 files changed

+17
-20
lines changed

4 files changed

+17
-20
lines changed

altair/datasets/_cache.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar, get_args
66

77
import narwhals.stable.v1 as nw
8-
from narwhals.dependencies import get_pyarrow
9-
from narwhals.typing import IntoDataFrameT, IntoFrameT
8+
from narwhals.stable.v1 import dependencies as nw_dep
9+
from narwhals.stable.v1.typing import IntoDataFrameT, IntoFrameT
1010

1111
from altair.datasets._typing import VERSION_LATEST
1212

@@ -151,7 +151,9 @@ def clear(self) -> None:
151151
.get_column("sha_suffix")
152152
)
153153
names = set[str](
154-
ser.to_list() if nw.get_native_namespace(ser) is get_pyarrow() else ser
154+
ser.to_list()
155+
if nw.get_native_namespace(ser) is nw_dep.get_pyarrow()
156+
else ser
155157
)
156158
for fp in self:
157159
if fp.name in names:

altair/datasets/_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import TYPE_CHECKING, Generic, final, overload
44

5-
from narwhals.typing import IntoDataFrameT, IntoFrameT
5+
from narwhals.stable.v1.typing import IntoDataFrameT, IntoFrameT
66

77
from altair.datasets._readers import _Reader, backend
88

altair/datasets/_readers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
)
3131

3232
import narwhals.stable.v1 as nw
33-
from narwhals.typing import IntoDataFrameT, IntoExpr, IntoFrameT
33+
from narwhals.stable.v1.typing import IntoDataFrameT, IntoExpr, IntoFrameT
3434

3535
from altair.datasets._cache import DatasetCache
3636
from altair.datasets._typing import EXTENSION_SUFFIXES, is_ext_read

tests/test_datasets.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,8 @@
1212
from urllib.error import URLError
1313

1414
import pytest
15-
from narwhals.dependencies import (
16-
is_into_dataframe,
17-
is_pandas_dataframe,
18-
is_polars_dataframe,
19-
is_pyarrow_table,
20-
)
2115
from narwhals.stable import v1 as nw
16+
from narwhals.stable.v1 import dependencies as nw_dep
2217

2318
from altair.datasets import Loader, url
2419
from altair.datasets._readers import _METADATA, AltairDatasetsError
@@ -227,11 +222,11 @@ def test_load_call(monkeypatch: pytest.MonkeyPatch) -> None:
227222
default_2 = load("cars")
228223
df_polars = load("cars", backend="polars")
229224

230-
assert is_polars_dataframe(default)
231-
assert is_pyarrow_table(df_pyarrow)
232-
assert is_pandas_dataframe(df_pandas)
233-
assert is_polars_dataframe(default_2)
234-
assert is_polars_dataframe(df_polars)
225+
assert nw_dep.is_polars_dataframe(default)
226+
assert nw_dep.is_pyarrow_table(df_pyarrow)
227+
assert nw_dep.is_pandas_dataframe(df_pandas)
228+
assert nw_dep.is_polars_dataframe(default_2)
229+
assert nw_dep.is_polars_dataframe(df_polars)
235230

236231

237232
@pytest.mark.parametrize(
@@ -320,7 +315,7 @@ def test_loader_call(backend: _Backend, monkeypatch: pytest.MonkeyPatch) -> None
320315

321316
data = Loader.from_backend(backend)
322317
frame = data("stocks", ".csv")
323-
assert is_into_dataframe(frame)
318+
assert nw_dep.is_into_dataframe(frame)
324319
nw_frame = nw.from_native(frame)
325320
assert set(nw_frame.columns) == {"symbol", "date", "price"}
326321

@@ -493,7 +488,7 @@ def test_reader_cache(
493488
cached_paths = tuple(data.cache)
494489
assert len(cached_paths) == 4
495490

496-
if is_polars_dataframe(lookup_groups):
491+
if nw_dep.is_polars_dataframe(lookup_groups):
497492
left, right = (
498493
lookup_groups,
499494
cast(pl.DataFrame, data("lookup_groups", tag="v2.5.3")),
@@ -664,7 +659,7 @@ def test_all_datasets(
664659
) -> None:
665660
"""Ensure all annotated datasets can be loaded with the most reliable backend."""
666661
frame = polars_loader(name, suffix, tag=tag)
667-
assert is_polars_dataframe(frame)
662+
assert nw_dep.is_polars_dataframe(frame)
668663

669664

670665
def _raise_exception(e: type[Exception], *args: Any, **kwds: Any):
@@ -698,7 +693,7 @@ def test_no_remote_connection(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -
698693

699694
# Now we can get a cache-hit
700695
frame = data("birdstrikes")
701-
assert is_polars_dataframe(frame)
696+
assert nw_dep.is_polars_dataframe(frame)
702697
assert len(tuple(tmp_path.iterdir())) == 4
703698

704699
with monkeypatch.context() as mp:

0 commit comments

Comments
 (0)