66This module may later be officially supported.
77"""
88
9+ def _identity (x ):
10+ return x
911
1012def _transform (dataset , arg ):
1113 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 )
1522
1623
1724def SELECT (dataset , * args ):
@@ -23,7 +30,7 @@ def SELECT(dataset, *args):
2330 results += [[header [1 ] for header in index_headers ]]
2431
2532 # 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 ]
2734 for datarow in dataset [1 :]]
2835 return results
2936
@@ -34,5 +41,8 @@ def EXCLUDE(dataset, *args):
3441 return SELECT (dataset , * antiargs )
3542
3643
44+ def CONSTANT (value , display_name ):
45+ return (None , display_name , lambda x : value )
46+
3747def AS (field , display_name ):
38- return (field , display_name )
48+ return (field , display_name , _identity )
0 commit comments