def generate_event_id(operation,feature_type,option=None): array = [operation,feature_type] if option!=None: option = ensure_list(option) for o in option: array.append(str(o)) return "::".join(array)
def band(db,feature_type,data): print "function: band" if not data.has_key('group'): return my_classifier.error_json("'group' must be set.") group_name = data['group'] selector = data['selector'] collections = db[feature_type] samples = collections.find(selector) #print samples if samples.count() == 0: return my_classifier.error_json("ERROR: no samples are hit.") for s in samples: groups = s['group'] if not group_name in groups: groups = ensure_list(groups) groups.append(group_name) _id = s['_id'] collections.update_one({"_id":_id},{"$set":{'group':groups}}) result = my_classifier.success_json() result['event'] = {'_id':generate_event_id('band',feature_type,[group_name,json.dumps(selector)])} return result