1
1
"""Dev app to try things out."""
2
+
2
3
import time
3
4
import yaml
4
5
27
28
def load_from_file (filter_column = None , parametrized_species = None ):
28
29
# Load the full iris dataset
29
30
df = px .data .iris ()
30
- df [' date_column' ] = pd .date_range (start = pd .to_datetime ("2024-01-01" ), periods = len (df ), freq = 'D' )
31
+ df [" date_column" ] = pd .date_range (start = pd .to_datetime ("2024-01-01" ), periods = len (df ), freq = "D" )
31
32
32
33
if parametrized_species :
33
34
return df [df ["species" ].isin (parametrized_species )]
34
35
35
- with open (' data.yaml' , 'r' ) as file :
36
+ with open (" data.yaml" , "r" ) as file :
36
37
data = yaml .safe_load (file )
37
38
data = data or {}
38
39
39
40
filter_column = filter_column or FILTER_COLUMN
40
41
if filter_column == "species" :
41
- final_df = pd .concat (objs = [
42
- df [df [filter_column ] == 'setosa' ].head (data .get ("setosa" , 0 )),
43
- df [df [filter_column ] == 'versicolor' ].head (data .get ("versicolor" , 0 )),
44
- df [df [filter_column ] == 'virginica' ].head (data .get ("virginica" , 0 )),
45
- ], ignore_index = True )
42
+ final_df = pd .concat (
43
+ objs = [
44
+ df [df [filter_column ] == "setosa" ].head (data .get ("setosa" , 0 )),
45
+ df [df [filter_column ] == "versicolor" ].head (data .get ("versicolor" , 0 )),
46
+ df [df [filter_column ] == "virginica" ].head (data .get ("virginica" , 0 )),
47
+ ],
48
+ ignore_index = True ,
49
+ )
46
50
elif filter_column == "sepal_length" :
47
- final_df = df [df [filter_column ].between (data .get ("min" ), data .get ("max" ,), inclusive = "both" )]
51
+ final_df = df [
52
+ df [filter_column ].between (
53
+ data .get ("min" ),
54
+ data .get (
55
+ "max" ,
56
+ ),
57
+ inclusive = "both" ,
58
+ )
59
+ ]
48
60
elif filter_column == "date_column" :
49
61
date_min = pd .to_datetime (data .get ("date_min" ))
50
62
date_max = pd .to_datetime (data .get ("date_max" ))
@@ -82,16 +94,18 @@ def load_from_file(filter_column=None, parametrized_species=None):
82
94
vm .Graph (
83
95
id = "p1-G-2" ,
84
96
figure = px .scatter (data_frame = px .data .iris (), ** SCATTER_CHART_CONF ),
85
- )
97
+ ),
86
98
],
87
99
controls = [
88
100
vm .Filter (id = "p1-F-1" , column = "species" , targets = ["p1-G-1" ], selector = vm .Dropdown (title = "Dynamic filter" )),
89
101
vm .Filter (id = "p1-F-2" , column = "species" , targets = ["p1-G-2" ], selector = vm .Dropdown (title = "Static filter" )),
90
102
vm .Parameter (
91
103
targets = ["p1-G-1.x" , "p1-G-2.x" ],
92
- selector = vm .RadioItems (options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter" )
93
- )
94
- ]
104
+ selector = vm .RadioItems (
105
+ options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter"
106
+ ),
107
+ ),
108
+ ],
95
109
)
96
110
97
111
@@ -110,9 +124,11 @@ def load_from_file(filter_column=None, parametrized_species=None):
110
124
vm .Filter (id = "p2-F-4" , column = "species" , selector = vm .RadioItems ()),
111
125
vm .Parameter (
112
126
targets = ["p2-G-1.x" ],
113
- selector = vm .RadioItems (options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter" )
114
- )
115
- ]
127
+ selector = vm .RadioItems (
128
+ options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter"
129
+ ),
130
+ ),
131
+ ],
116
132
)
117
133
118
134
@@ -129,9 +145,11 @@ def load_from_file(filter_column=None, parametrized_species=None):
129
145
vm .Filter (id = "p3-F-2" , column = "sepal_length" , selector = vm .RangeSlider ()),
130
146
vm .Parameter (
131
147
targets = ["p3-G-1.x" ],
132
- selector = vm .RadioItems (options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter" )
133
- )
134
- ]
148
+ selector = vm .RadioItems (
149
+ options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter"
150
+ ),
151
+ ),
152
+ ],
135
153
)
136
154
137
155
page_4 = vm .Page (
@@ -147,9 +165,11 @@ def load_from_file(filter_column=None, parametrized_species=None):
147
165
vm .Filter (id = "p4-F-2" , column = "date_column" , selector = vm .DatePicker ()),
148
166
vm .Parameter (
149
167
targets = ["p4-G-1.x" ],
150
- selector = vm .RadioItems (options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter" )
151
- )
152
- ]
168
+ selector = vm .RadioItems (
169
+ options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter"
170
+ ),
171
+ ),
172
+ ],
153
173
)
154
174
155
175
page_5 = vm .Page (
@@ -170,73 +190,66 @@ def load_from_file(filter_column=None, parametrized_species=None):
170
190
# "p5-F-1.",
171
191
],
172
192
selector = vm .Dropdown (
173
- options = ["setosa" , "versicolor" , "virginica" ],
174
- multi = True ,
175
- title = "Parametrized species"
176
- )
193
+ options = ["setosa" , "versicolor" , "virginica" ], multi = True , title = "Parametrized species"
194
+ ),
177
195
),
178
196
vm .Parameter (
179
197
targets = [
180
198
"p5-G-1.x" ,
181
199
# TODO: Uncomment the following target and see the magic :D
182
200
# "p5-F-1.",
183
201
],
184
- selector = vm .RadioItems (options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter" )
202
+ selector = vm .RadioItems (
203
+ options = ["species" , "sepal_width" ], value = "species" , title = "Simple X-axis parameter"
204
+ ),
185
205
),
186
- ]
206
+ ],
187
207
)
188
208
189
209
190
210
page_6 = vm .Page (
191
211
title = "Page to test things out" ,
192
212
components = [
193
- vm .Graph (
194
- id = "graph_dynamic" ,
195
- figure = px .bar (data_frame = "load_from_file" , ** BAR_CHART_CONF )
196
- ),
213
+ vm .Graph (id = "graph_dynamic" , figure = px .bar (data_frame = "load_from_file" , ** BAR_CHART_CONF )),
197
214
vm .Graph (
198
215
id = "graph_static" ,
199
216
figure = px .scatter (data_frame = px .data .iris (), ** SCATTER_CHART_CONF ),
200
- )
217
+ ),
201
218
],
202
219
controls = [
203
220
vm .Filter (
204
221
id = "filter_container_id" ,
205
222
column = FILTER_COLUMN ,
206
223
targets = ["graph_dynamic" ],
207
224
# targets=["graph_static"],
208
-
209
225
# selector=vm.Dropdown(id="filter_id"),
210
226
# selector=vm.Dropdown(id="filter_id", value=["setosa"]),
211
-
212
227
# selector=vm.Checklist(id="filter_id"),
213
228
# selector=vm.Checklist(id="filter_id", value=["setosa"]),
214
-
215
229
# TODO-BUG: vm.Dropdown(multi=False) Doesn't work if value is cleared. The persistence storage become
216
230
# "null" and our placeholder component dmc.DateRangePicker can't process null value. It expects a value or
217
231
# a list of values.
218
232
# SOLUTION -> Create the "Universal Vizro placeholder component".
219
233
# TEMPORARY SOLUTION -> set clearable=False for the dynamic Dropdown(multi=False)
220
234
# selector=vm.Dropdown(id="filter_id", multi=False), ->
221
235
# selector=vm.Dropdown(id="filter_id", multi=False, value="setosa"),
222
-
223
236
# selector=vm.RadioItems(id="filter_id"),
224
237
# selector=vm.RadioItems(id="filter_id", value="setosa"),
225
-
226
238
# selector=vm.Slider(id="filter_id"),
227
239
# selector=vm.Slider(id="filter_id", value=5),
228
-
229
240
# selector=vm.RangeSlider(id="filter_id"),
230
241
# selector=vm.RangeSlider(id="filter_id", value=[5, 7]),
231
- ),
242
+ ),
232
243
vm .Parameter (
233
244
id = "parameter_x" ,
234
- targets = ["graph_dynamic.x" ,],
245
+ targets = [
246
+ "graph_dynamic.x" ,
247
+ ],
235
248
selector = vm .Dropdown (
236
249
options = ["species" , "sepal_width" ],
237
250
value = "species" ,
238
251
multi = False ,
239
- )
252
+ ),
240
253
),
241
254
],
242
255
)
0 commit comments