def api_render_label_studio(): """ Label studio frontend rendering for iframe """ # get args project = project_get_or_create() config = request.args.get('config', request.form.get('config', '')) config = unquote(config) if not config: return make_response('No config in POST', status.HTTP_417_EXPECTATION_FAILED) # prepare example task_data = generate_sample_task_without_check(config, mode='editor_preview') example_task_data = { 'id': 1764, 'data': task_data, 'project': project.id, 'created_at': '2019-02-06T14:06:42.000420Z', 'updated_at': '2019-02-06T14:06:42.000420Z' } # prepare context for html config_line = config_line_stripped(config) response = { 'label_config_line': config_line, 'task_ser': example_task_data } response.update(find_editor_files()) project.analytics.send(getframeinfo(currentframe()).function) return flask.render_template('render_ls.html', **response)
def _get_sample_task(label_config): predefined_task, completions, predictions = get_task_from_labeling_config( label_config) generated_task = generate_sample_task_without_check(label_config, mode='editor_preview') if predefined_task is not None: generated_task.update(predefined_task) return generated_task, completions, predictions
def api_import_example(): """ Generate upload data example by config only """ # django compatibility request.GET = request.args request.POST = request.form config = request.GET.get('label_config', '') if not config: config = request.POST.get('label_config', '') try: g.project.validate_label_config(config) output = generate_sample_task_without_check(config, mode='editor_preview') except (ValueError, ValidationError, lxml.etree.Error, KeyError): response = HttpResponse('error while example generating', status=status.HTTP_400_BAD_REQUEST) else: response = HttpResponse(json.dumps(output)) return response