Skip to content
Open
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
e745e37
chore!: Remove interchange (temporary)
dangotbanned Jun 27, 2026
4940eb3
chore: Reintroduce (limited) interchange support
dangotbanned Jun 27, 2026
3288b0d
grow up mypy
dangotbanned Jun 27, 2026
ce86e5c
test: fix invalid test
dangotbanned Jun 27, 2026
60068f0
test: isolate `test_invalid_filter`
dangotbanned Jun 28, 2026
3cfb767
chore: reintroduce `ibis`
dangotbanned Jun 28, 2026
6ba4d66
fix: remember that `duckdb` doesn't support interchange
dangotbanned Jun 28, 2026
902796a
fix: add compat alias for marimo
dangotbanned Jun 28, 2026
b7e533d
ignore mypy
dangotbanned Jun 28, 2026
4e9f986
Merge branch 'chore/issue-2932-rm-level' into chore/issue-2932-rm-lev…
dangotbanned Jun 29, 2026
3ceb3e0
test: add `tests.interchange`
dangotbanned Jun 29, 2026
ecfc247
test: migrate `get_level` tests
dangotbanned Jun 29, 2026
545e9a3
test: migrate `from_native` tests
dangotbanned Jun 29, 2026
fc21485
test: migrate `interchange_*` test modules
dangotbanned Jun 29, 2026
af940e6
docs: add a package doc
dangotbanned Jun 29, 2026
68506ea
fix: Don't require `eager_or_interchange_only=True`
dangotbanned Jun 29, 2026
d7c5b45
test: isolate interchange `is_into_*frame` tests
dangotbanned Jun 29, 2026
edc6fea
fix: Stop expecting interchange to support everything
dangotbanned Jun 29, 2026
4a85d71
chore: isolate `duckdb` interchange
dangotbanned Jun 29, 2026
af0bb3c
refactor: Simplify both `duckdb` and `ibis`
dangotbanned Jun 29, 2026
f4f7d72
test: cover `get_column`, `to_native` explicitly
dangotbanned Jun 29, 2026
68f8136
refactor: remove everything that isn't tested
dangotbanned Jun 29, 2026
28dbbf2
refactor: goodbye `supports_dataframe_interchange`
dangotbanned Jun 29, 2026
94f2e86
fix: avoid `Protocol.__init__`
dangotbanned Jun 30, 2026
395ee9d
chore: no cover on unreachable path
dangotbanned Jun 30, 2026
9adb2db
chore: remove dead comment
dangotbanned Jun 30, 2026
c27bfbd
refactor: Simplify `SQLLazyFrame.to_narwhals`
dangotbanned Jun 30, 2026
9a7879e
refactor: Expose what is actually used externally
dangotbanned Jun 30, 2026
0d596eb
refactor: Fix weird leftovers
dangotbanned Jun 30, 2026
322ccba
chore: rename and explain `__getattr__` trick
dangotbanned Jun 30, 2026
7699757
docs(typing): Explain magic
dangotbanned Jun 30, 2026
7c121b7
refactor: `__all__` is shorter
dangotbanned Jun 30, 2026
0402c65
shrinky-dink
dangotbanned Jun 30, 2026
4eb26e2
fix: Don't give false hope
dangotbanned Jun 30, 2026
fd13f4b
refactor: remove `_interchange.series.py`
dangotbanned Jun 30, 2026
35478b3
refactor: share more between interchange series/frame
dangotbanned Jun 30, 2026
c857c8c
test: update error pattern x2
dangotbanned Jun 30, 2026
f19899b
refactor: consistent imports
dangotbanned Jun 30, 2026
9f794e5
test: move fixtures to `interchange.conftest`
dangotbanned Jun 30, 2026
4bbdf11
merge upstream
FBruzzesi Jul 2, 2026
bb05096
fix: exclude `cudf.DataFrame` too
dangotbanned Jul 3, 2026
28545e0
refactor: lower density, more clarity?
dangotbanned Jul 3, 2026
8eb114c
chore: guard against `ibis` removing `__dataframe__` support
dangotbanned Jul 3, 2026
3199d03
no cov fireducks
dangotbanned Jul 3, 2026
955a677
refactor: invert checks, explain a bit more
dangotbanned Jul 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/narwhals/_interchange/dataframe.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ def schema(self) -> dict[str, DType]: ...
def columns(self) -> list[str]:
return list(self.column_names())

@property
def _native_frame(self) -> Original_co:
return self._df

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this alias temporarily so that to_native keeps working.

But we should probably update these guys:

if isinstance(narwhals_object, BaseFrame):
return narwhals_object._compliant_frame._native_frame
if isinstance(narwhals_object, Series):
return narwhals_object._compliant_series.native

-    if isinstance(narwhals_object, BaseFrame):
-        return narwhals_object._compliant_frame._native_frame
-    if isinstance(narwhals_object, Series):
-        return narwhals_object._compliant_series.native
+    if isinstance(narwhals_object, (BaseFrame, Series)):
+        return narwhals_object._compliant.native


def to_pandas(self) -> pd.DataFrame: ...
def to_arrow(self) -> pa.Table: ...
def get_column(self, name: str, /) -> InterchangeSeriesV1[Original_co]: ...
Expand Down
Loading