def api_generate_next_task(): """ Generate next task to label """ # try to find task is not presented in completions completions = db.get_completions_ids() for (task_id, task) in db.get_tasks().items(): if task_id not in completions: log.info(msg='New task for labeling', extra=task) analytics.send(getframeinfo(currentframe()).function) return make_response(jsonify(task), 200) # no tasks found analytics.send(getframeinfo(currentframe()).function, error=404) return make_response('', 404)
def api_generate_next_task(): """ Generate next task to label """ # try to find task is not presented in completions completions = db.get_completions_ids() for task_id, task in db.iter_tasks(): if task_id not in completions: log.info(msg='New task for labeling', extra=task) analytics.send(getframeinfo(currentframe()).function) # try to use ml backend for predictions if ml_backend: task = deepcopy(task) task['predictions'] = ml_backend.make_predictions( task, project) return make_response(jsonify(task), 200) # no tasks found analytics.send(getframeinfo(currentframe()).function, error=404) return make_response('', 404)
def tasks_page(): """ Tasks and completions page: tasks.html """ global c reload_config() label_config = open( c['label_config']).read() # load editor config from XML task_ids = db.get_tasks().keys() completed_at = db.get_completed_at(task_ids) # sort by completed time task_ids = sorted([(i, completed_at[i] if i in completed_at else '9') for i in task_ids], key=lambda x: x[1]) task_ids = [i[0] for i in task_ids] # take only id back analytics.send(getframeinfo(currentframe()).function) return flask.render_template('tasks.html', config=c, label_config=label_config, task_ids=task_ids, completions=db.get_completions_ids(), completed_at=completed_at)
def api_all_completion_ids(): """ Get all completion ids """ ids = db.get_completions_ids() analytics.send(getframeinfo(currentframe()).function) return make_response(jsonify(ids), 200)