6
6
This module may later be officially supported.
7
7
"""
8
8
9
+ def _identity (x ):
10
+ return x
9
11
10
12
def _transform (dataset , arg ):
11
13
if isinstance (arg , str ):
12
- return (dataset [0 ].index (arg ), arg )
13
- elif isinstance (arg , tuple ):
14
- return (dataset [0 ].index (arg [0 ]), arg [1 ])
14
+ field = arg
15
+ display_name = arg
16
+ transformer = _identity
17
+ else :
18
+ field , display_name , transformer = arg
19
+ if field is None :
20
+ field = dataset [0 ][0 ]
21
+ return (dataset [0 ].index (field ), display_name , transformer )
15
22
16
23
17
24
def SELECT (dataset , * args ):
@@ -23,7 +30,7 @@ def SELECT(dataset, *args):
23
30
results += [[header [1 ] for header in index_headers ]]
24
31
25
32
# add the rest of the rows
26
- results += [[datarow [i ] for i , h in index_headers ]
33
+ results += [[trans ( datarow [i ]) for i , h , trans in index_headers ]
27
34
for datarow in dataset [1 :]]
28
35
return results
29
36
@@ -34,5 +41,8 @@ def EXCLUDE(dataset, *args):
34
41
return SELECT (dataset , * antiargs )
35
42
36
43
44
+ def CONSTANT (value , display_name ):
45
+ return (None , display_name , lambda x : value )
46
+
37
47
def AS (field , display_name ):
38
- return (field , display_name )
48
+ return (field , display_name , _identity )
0 commit comments