6
6
from db .transforms .operations .deserialize import deserialize_transformation
7
7
from db .transforms .operations .serialize import serialize_transformation
8
8
from db .transforms .base import Summarize
9
- from db .functions .base import Count , ArrayAgg , Sum , Median , Mode , Percentage_True , Max , Min , Mean , PeakTime , PeakMonth
9
+ from db .functions .base import (
10
+ Count ,
11
+ ArrayAgg ,
12
+ Sum ,
13
+ Median ,
14
+ Mode ,
15
+ Percentage_True ,
16
+ Max ,
17
+ Min ,
18
+ Mean ,
19
+ PeakTime ,
20
+ PeakMonth ,
21
+ )
10
22
from db .functions .packed import DistinctArrayAgg
11
23
12
24
from mathesar .api .exceptions .query_exceptions .exceptions import DeletedColumnAccess
13
- from mathesar .models .validators import DictValidator , InitialColumnsValidator , ListOfDictValidator , TransformationsValidator
25
+ from mathesar .models .validators import (
26
+ DictValidator ,
27
+ InitialColumnsValidator ,
28
+ ListOfDictValidator ,
29
+ TransformationsValidator ,
30
+ )
14
31
from mathesar .state .cached_property import cached_property
15
32
from mathesar .models .base import BaseModel , Column
16
33
from mathesar .models .relation import Relation
@@ -22,13 +39,10 @@ class UIQuery(BaseModel, Relation):
22
39
max_length = 128 ,
23
40
)
24
41
25
- description = models .TextField (
26
- null = True ,
27
- blank = True
28
- )
42
+ description = models .TextField (null = True , blank = True )
29
43
30
44
base_table = models .ForeignKey (
31
- ' Table' , on_delete = models .CASCADE , related_name = ' queries'
45
+ " Table" , on_delete = models .CASCADE , related_name = " queries"
32
46
)
33
47
34
48
# sequence of dicts
@@ -82,8 +96,7 @@ def output_columns_described(self):
82
96
"""
83
97
return tuple (
84
98
self ._describe_query_column (sa_col )
85
- for sa_col
86
- in self .db_query .sa_output_columns
99
+ for sa_col in self .db_query .sa_output_columns
87
100
)
88
101
89
102
@property
@@ -94,16 +107,13 @@ def output_columns_simple(self):
94
107
def initial_columns_described (self ):
95
108
return tuple (
96
109
{
97
- 'alias' : initial_col_alias ,
98
- 'display_name' : self ._get_display_name_for_alias (
99
- initial_col_alias
100
- ),
101
- 'type' : dj_col .db_type .id ,
102
- 'type_options' : dj_col ._sa_column .type_options ,
103
- 'display_options' : dj_col .display_options
110
+ "alias" : initial_col_alias ,
111
+ "display_name" : self ._get_display_name_for_alias (initial_col_alias ),
112
+ "type" : dj_col .db_type .id ,
113
+ "type_options" : dj_col ._sa_column .type_options ,
114
+ "display_options" : dj_col .display_options ,
104
115
}
105
- for initial_col_alias , dj_col
106
- in self ._map_of_initial_col_alias_to_dj_column .items ()
116
+ for initial_col_alias , dj_col in self ._map_of_initial_col_alias_to_dj_column .items ()
107
117
)
108
118
109
119
def _describe_query_column (self , sa_col ):
@@ -126,17 +136,17 @@ def _describe_query_column(self, sa_col):
126
136
)
127
137
output = output | optionals
128
138
if is_initial_column :
129
- initial_dj_column = _get_dj_column_for_initial_db_column (initial_db_column , self ._database )
139
+ initial_dj_column = _get_dj_column_for_initial_db_column (
140
+ initial_db_column , self ._database
141
+ )
130
142
output = output | dict (
131
143
input_column_name = initial_dj_column .name ,
132
144
input_table_name = initial_dj_column .table .name ,
133
145
input_table_id = initial_dj_column .table .id ,
134
146
)
135
147
else :
136
148
input_alias = self .db_query .get_input_alias_for_output_alias (alias )
137
- output = output | dict (
138
- input_alias = input_alias
139
- )
149
+ output = output | dict (input_alias = input_alias )
140
150
return output
141
151
142
152
def _get_db_initial_column_by_alias (self , alias ):
@@ -180,8 +190,7 @@ def replace_transformations_with_processed_transformations(self):
180
190
def _processed_transformations (self ):
181
191
return tuple (
182
192
serialize_transformation (db_transformation )
183
- for db_transformation
184
- in self ._processed_db_transformations
193
+ for db_transformation in self ._processed_db_transformations
185
194
)
186
195
187
196
@property
@@ -212,25 +221,22 @@ def db_query(self):
212
221
engine = self ._sa_engine ,
213
222
transformations = self ._db_transformations ,
214
223
name = self .name ,
215
- metadata = get_cached_metadata ()
224
+ metadata = get_cached_metadata (),
216
225
)
217
226
218
227
# TODO reused; consider using cached_property
219
228
@property
220
229
def _db_initial_columns (self ):
221
230
return tuple (
222
- _db_initial_column_from_json (json_col )
223
- for json_col in self .initial_columns
231
+ _db_initial_column_from_json (json_col ) for json_col in self .initial_columns
224
232
)
225
233
226
234
@property
227
235
def _db_transformations (self ):
228
236
"""No processing necessary."""
229
237
if self .transformations :
230
238
return tuple (
231
- deserialize_transformation (json )
232
- for json
233
- in self .transformations
239
+ deserialize_transformation (json ) for json in self .transformations
234
240
)
235
241
236
242
def _get_display_name_for_alias (self , alias ):
@@ -248,8 +254,7 @@ def _get_display_options_for_alias(self, alias):
248
254
display_options = dj_col .display_options
249
255
# Try recursively repeating these steps for its parent alias, if it can be found
250
256
if display_options is None :
251
- parent_alias = \
252
- self .db_query .map_of_output_alias_to_input_alias .get (alias )
257
+ parent_alias = self .db_query .map_of_output_alias_to_input_alias .get (alias )
253
258
if parent_alias :
254
259
display_options = self ._get_display_options_for_alias (parent_alias )
255
260
return display_options
@@ -286,72 +291,72 @@ def _default_display_names(self):
286
291
attribute), though they are used when generating some of the default display names.
287
292
"""
288
293
current_display_names = self .display_names or dict ()
289
- default_display_names_for_initial_columns = self ._default_display_names_for_initial_columns
290
- current_display_names = \
291
- default_display_names_for_initial_columns \
292
- | current_display_names
293
- default_display_names_for_summarize_transforms = \
294
+ default_display_names_for_initial_columns = (
295
+ self ._default_display_names_for_initial_columns
296
+ )
297
+ current_display_names = (
298
+ default_display_names_for_initial_columns | current_display_names
299
+ )
300
+ default_display_names_for_summarize_transforms = (
294
301
self ._get_default_display_names_for_summarize_transforms (
295
302
current_display_names
296
303
)
297
- default_display_names = \
298
- default_display_names_for_summarize_transforms \
304
+ )
305
+ default_display_names = (
306
+ default_display_names_for_summarize_transforms
299
307
| default_display_names_for_initial_columns
308
+ )
300
309
return default_display_names
301
310
302
311
@property
303
312
def _default_display_names_for_initial_columns (self ):
304
313
return {
305
314
alias : dj_col .name
306
- for alias , dj_col
307
- in self ._map_of_initial_col_alias_to_dj_column .items ()
315
+ for alias , dj_col in self ._map_of_initial_col_alias_to_dj_column .items ()
308
316
}
309
317
310
- def _get_default_display_names_for_summarize_transforms (self , current_display_names ):
318
+ def _get_default_display_names_for_summarize_transforms (
319
+ self , current_display_names
320
+ ):
311
321
default_display_names = dict ()
312
322
if not current_display_names :
313
323
return default_display_names
314
324
summarize_transforms = [
315
325
db_transform
316
- for db_transform
317
- in self .db_query .transformations
326
+ for db_transform in self .db_query .transformations
318
327
if isinstance (db_transform , Summarize )
319
328
]
320
329
for summarize_transform in summarize_transforms :
321
330
# Find default display names for grouping output aliases
322
331
for output_alias in summarize_transform .grouping_output_aliases :
323
- default_display_name = \
324
- _get_default_display_name_for_group_output_alias (
325
- summarize_transform ,
326
- output_alias ,
327
- current_display_names ,
328
- )
332
+ default_display_name = _get_default_display_name_for_group_output_alias (
333
+ summarize_transform ,
334
+ output_alias ,
335
+ current_display_names ,
336
+ )
329
337
if default_display_name :
330
338
default_display_names [output_alias ] = default_display_name
331
339
# Find default display names for aggregation output aliases
332
340
for agg_col_spec in summarize_transform .aggregation_col_specs :
333
341
input_alias = agg_col_spec .get ("input_alias" )
334
342
output_alias = agg_col_spec .get ("output_alias" )
335
343
agg_function = agg_col_spec .get ("function" )
336
- default_display_name = \
337
- _get_default_display_name_for_agg_output_alias (
338
- output_alias ,
339
- input_alias ,
340
- agg_function ,
341
- current_display_names ,
342
- )
344
+ default_display_name = _get_default_display_name_for_agg_output_alias (
345
+ output_alias ,
346
+ input_alias ,
347
+ agg_function ,
348
+ current_display_names ,
349
+ )
343
350
if default_display_name :
344
351
default_display_names [output_alias ] = default_display_name
345
352
return default_display_names
346
353
347
354
@property
348
355
def _map_of_initial_col_alias_to_dj_column (self ):
349
- dj_column_ids = [col ['id' ] for col in self .initial_columns ]
356
+ dj_column_ids = [col ["id" ] for col in self .initial_columns ]
350
357
dj_columns = Column .objects .filter (pk__in = dj_column_ids )
351
358
initial_col_aliases = [
352
- initial_col ['alias' ]
353
- for initial_col
354
- in self .initial_columns
359
+ initial_col ["alias" ] for initial_col in self .initial_columns
355
360
]
356
361
return frozendict (
357
362
zip (
@@ -383,9 +388,7 @@ def _db_initial_column_from_json(col_json):
383
388
attnum = column_pair [1 ]
384
389
alias = col_json ["alias" ]
385
390
jp_path = [
386
- _join_parameter_from_json (jp_json )
387
- for jp_json
388
- in col_json .get ("jp_path" , [])
391
+ _join_parameter_from_json (jp_json ) for jp_json in col_json .get ("jp_path" , [])
389
392
]
390
393
return InitialColumn (
391
394
reloid = reloid ,
@@ -441,10 +444,6 @@ def _get_default_display_name_for_group_output_alias(
441
444
output_alias ,
442
445
current_display_names ,
443
446
):
444
- input_alias = \
445
- summarize_transform \
446
- .map_of_output_alias_to_input_alias [output_alias ]
447
+ input_alias = summarize_transform .map_of_output_alias_to_input_alias [output_alias ]
447
448
input_alias_display_name = current_display_names .get (input_alias )
448
- if input_alias_display_name :
449
- suffix_to_add = " group"
450
- return input_alias_display_name + suffix_to_add
449
+ return input_alias_display_name
0 commit comments