Skip to content

Commit 40ac119

Browse files
authored
chore: Cache ibis columns property (#2563)
feat: Cache ibis columns property
1 parent e906bcd commit 40ac119

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

narwhals/_ibis/dataframe.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def __init__(
6565
self._version = version
6666
self._backend_version = backend_version
6767
self._cached_schema: dict[str, DType] | None = None
68+
self._cached_columns: list[str] | None = None
6869
validate_backend_version(self._implementation, self._backend_version)
6970

7071
@staticmethod
@@ -213,7 +214,13 @@ def schema(self) -> dict[str, DType]:
213214

214215
@property
215216
def columns(self) -> list[str]:
216-
return list(self.native.columns)
217+
if self._cached_columns is None:
218+
self._cached_columns = (
219+
list(self.schema)
220+
if self._cached_schema is not None
221+
else list(self.native.columns)
222+
)
223+
return self._cached_columns
217224

218225
def to_pandas(self) -> pd.DataFrame:
219226
# only if version is v1, keep around for backcompat

0 commit comments

Comments
 (0)