Skip to content

Commit 86fb1d1

Browse files
committed
Refactor transform logic to make it column name based
Signed-off-by: martinRenou <[email protected]>
1 parent c74797b commit 86fb1d1

25 files changed

+319
-231
lines changed

examples/DataGrid.ipynb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,10 @@
156156
" {\n",
157157
" \"type\": \"filter\",\n",
158158
" \"operator\": \"=\",\n",
159-
" \"columnIndex\": 7,\n",
159+
" \"column\": \"Origin\",\n",
160160
" \"value\": \"Europe\",\n",
161161
" },\n",
162-
" {\"type\": \"sort\", \"columnIndex\": 3, \"desc\": True},\n",
162+
" {\"type\": \"sort\", \"column\": \"Horsepower\", \"desc\": True},\n",
163163
" ]\n",
164164
")"
165165
]
@@ -181,9 +181,9 @@
181181
"source": [
182182
"datagrid.transform(\n",
183183
" [\n",
184-
" {\"type\": \"filter\", \"operator\": \"=\", \"columnIndex\": 7, \"value\": \"USA\"},\n",
185-
" {\"type\": \"filter\", \"operator\": \"<\", \"columnIndex\": 1, \"value\": 13},\n",
186-
" {\"type\": \"sort\", \"columnIndex\": 1},\n",
184+
" {\"type\": \"filter\", \"operator\": \"=\", \"column\": \"Origin\", \"value\": \"USA\"},\n",
185+
" {\"type\": \"filter\", \"operator\": \"<\", \"column\": \"Horsepower\", \"value\": 130},\n",
186+
" {\"type\": \"sort\", \"column\": \"Acceleration\"},\n",
187187
" ]\n",
188188
")"
189189
]
@@ -372,7 +372,7 @@
372372
"name": "python",
373373
"nbconvert_exporter": "python",
374374
"pygments_lexer": "ipython3",
375-
"version": "3.12.1"
375+
"version": "3.12.3"
376376
}
377377
},
378378
"nbformat": 4,

examples/Nested Hierarchies.ipynb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,19 @@
6464
"\n",
6565
"nested_grid"
6666
]
67+
},
68+
{
69+
"cell_type": "code",
70+
"execution_count": null,
71+
"id": "23f007f4-bcce-4ecd-b68c-aa9b96c82f82",
72+
"metadata": {},
73+
"outputs": [],
74+
"source": []
6775
}
6876
],
6977
"metadata": {
7078
"kernelspec": {
71-
"display_name": "Python 3",
79+
"display_name": "Python 3 (ipykernel)",
7280
"language": "python",
7381
"name": "python3"
7482
},
@@ -82,7 +90,7 @@
8290
"name": "python",
8391
"nbconvert_exporter": "python",
8492
"pygments_lexer": "ipython3",
85-
"version": "3.9.5"
93+
"version": "3.12.3"
8694
}
8795
},
8896
"nbformat": 4,

examples/Pandas.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
"}\n",
5656
"\n",
5757
"grid = DataGrid(df, base_row_size=30, base_column_size=300, renderers=renderers)\n",
58-
"grid.transform([{\"type\": \"sort\", \"columnIndex\": 2, \"desc\": True}])\n",
58+
"grid.transform([{\"type\": \"sort\", \"column\": \"Dates\", \"desc\": True}])\n",
5959
"grid"
6060
]
6161
},
@@ -69,7 +69,7 @@
6969
],
7070
"metadata": {
7171
"kernelspec": {
72-
"display_name": "Python 3",
72+
"display_name": "Python 3 (ipykernel)",
7373
"language": "python",
7474
"name": "python3"
7575
},
@@ -83,7 +83,7 @@
8383
"name": "python",
8484
"nbconvert_exporter": "python",
8585
"pygments_lexer": "ipython3",
86-
"version": "3.6.6"
86+
"version": "3.12.3"
8787
}
8888
},
8989
"nbformat": 4,

examples/Trees_paris.ipynb

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -130,28 +130,21 @@
130130
"source": [
131131
"datagrid.transform(\n",
132132
" [\n",
133-
" {\"type\": \"sort\", \"columnIndex\": 5},\n",
133+
" {\"type\": \"sort\", \"column\": \"Height_m\"},\n",
134134
" {\n",
135135
" \"type\": \"filter\",\n",
136136
" \"operator\": \"=\",\n",
137-
" \"columnIndex\": 4,\n",
138-
" \"value\": \"Platane\",\n",
137+
" \"column\": \"Kind\",\n",
138+
" \"value\": \"Platanus\",\n",
139139
" },\n",
140140
" ]\n",
141141
")"
142142
]
143-
},
144-
{
145-
"cell_type": "code",
146-
"execution_count": null,
147-
"metadata": {},
148-
"outputs": [],
149-
"source": []
150143
}
151144
],
152145
"metadata": {
153146
"kernelspec": {
154-
"display_name": "Python 3",
147+
"display_name": "Python 3 (ipykernel)",
155148
"language": "python",
156149
"name": "python3"
157150
},
@@ -165,7 +158,7 @@
165158
"name": "python",
166159
"nbconvert_exporter": "python",
167160
"pygments_lexer": "ipython3",
168-
"version": "3.6.6"
161+
"version": "3.12.3"
169162
}
170163
},
171164
"nbformat": 4,

ipydatagrid/datagrid.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import datetime
55
import decimal
6+
import warnings
67
from collections.abc import Iterator
78
from copy import deepcopy
89
from math import floor
@@ -825,8 +826,22 @@ def _validate_transforms(self, proposal):
825826
transforms = proposal["value"]
826827
field_len = len(self._data["schema"]["fields"])
827828
for transform in transforms:
828-
if transform["columnIndex"] > field_len:
829-
raise ValueError("Column index is out of bounds.")
829+
if "columnIndex" in transform:
830+
warnings.warn(
831+
"Applying transforms on columnIndex is deprecated, "
832+
"please provide the column name instead",
833+
DeprecationWarning,
834+
stacklevel=4,
835+
)
836+
837+
if "column" not in transform:
838+
transform["column"] = self._data["schema"]["fields"][
839+
transform["columnIndex"]
840+
]["name"]
841+
842+
if transform["columnIndex"] > field_len:
843+
raise ValueError("Column index is out of bounds.")
844+
830845
return transforms
831846

832847
@validate("_data")

0 commit comments

Comments
 (0)