@@ -131,25 +131,30 @@ class PrecomputedFeaturesHandler(BaseHandler):
131
131
@auth_or_token
132
132
def post (self ):
133
133
data = self .get_json ()
134
- print (data )
135
134
if data ['datasetID' ] not in [None , 'None' ]:
136
135
dataset = Dataset .query .filter (Dataset .id == data ['datasetID' ]).one ()
137
136
else :
138
137
dataset = None
139
138
current_project = Project .get_if_owned_by (data ['projectID' ],
140
139
self .current_user )
141
140
feature_data = StringIO (data ['dataFile' ]['body' ])
142
- fset = pd .read_csv (feature_data , sep = ',' , index_col = 'ts_name' )
143
- try :
144
- labels = fset .pop ('labels' ).values
145
- except KeyError :
141
+ fset = pd .read_csv (feature_data , index_col = 0 , header = [0 , 1 ])
142
+ if 'labels' in fset :
143
+ labels = fset .pop ('labels' ).values .ravel ()
144
+ if labels .dtype == 'O' :
145
+ labels = [str (label ) for label in labels ]
146
+ else :
146
147
labels = [None ]
147
148
fset_path = pjoin (
148
149
self .cfg ['paths:features_folder' ],
149
150
'{}_{}.npz' .format (uuid .uuid4 (), data ['dataFile' ]['name' ]))
151
+
150
152
featurize .save_featureset (fset , fset_path , labels = labels )
151
153
152
- features_list = fset .columns .tolist ()
154
+ # Meta-features will have channel values of an empty string or a string
155
+ # beginning with 'Unnamed:'
156
+ features_list = [el [0 ] for el in fset .columns .tolist () if
157
+ (el [1 ] != '' and not el [1 ].startswith ('Unnamed:' ))]
153
158
154
159
featureset = Featureset (name = data ['featuresetName' ],
155
160
file_uri = fset_path ,
0 commit comments