def api_import_example_file(): """ Task examples for import """ global c, project reload_config() request.GET = request.args # django compatibility q = request.GET.get('q', 'json') filename = 'sample-' + datetime.now().strftime('%Y-%m-%d-%H-%M') try: task = generate_sample_task(project) except (ValueError, ValidationError, lxml.etree.Error): return HttpResponse('error while example generating', status=status.HTTP_400_BAD_REQUEST) tasks = [task, task] if q == 'json': filename += '.json' output = json.dumps(tasks) elif q == 'csv': filename += '.csv' output = pd.read_json(json.dumps(tasks), orient='records').to_csv(index=False) elif q == 'tsv': filename += '.tsv' output = pd.read_json(json.dumps(tasks), orient='records').to_csv(index=False, sep='\t') elif q == 'txt': if len(project.data_types.keys()) > 1: raise ValueError( 'TXT is unsupported for projects with multiple sources in config' ) filename += '.txt' output = '' for t in tasks: output += list(t.values())[0] + '\n' else: raise ValueError('Incorrect format ("q") in request') if request.GET.get('raw', '0') == '1': return HttpResponse(output) response = HttpResponse(output) response.headers[ 'Content-Disposition'] = 'attachment; filename=%s' % filename response.headers['filename'] = filename analytics.send(getframeinfo(currentframe()).function) return response
def api_import_example_file(): """Task examples for import""" request.GET = request.args # django compatibility q = request.GET.get("q", "json") filename = "sample-" + datetime.now().strftime("%Y-%m-%d-%H-%M") try: task = generate_sample_task(g.project) except (ValueError, ValidationError, lxml.etree.Error): return HttpResponse("error while example generating", status=status.HTTP_400_BAD_REQUEST) tasks = [task, task] if q == "json": filename += ".json" output = json.dumps(tasks) elif q == "csv": filename += ".csv" output = pd.read_json(json.dumps(tasks), orient="records").to_csv(index=False) elif q == "tsv": filename += ".tsv" output = pd.read_json(json.dumps(tasks), orient="records").to_csv(index=False, sep="\t") elif q == "txt": if len(g.project.data_types.keys()) > 1: raise ValueError( "TXT is unsupported for projects with multiple sources in config" ) filename += ".txt" output = "" for t in tasks: output += list(t.values())[0] + "\n" else: raise ValueError('Incorrect format ("q") in request') if request.GET.get("raw", "0") == "1": return HttpResponse(output) response = HttpResponse(output) response.headers[ "Content-Disposition"] = "attachment; filename=%s" % filename response.headers["filename"] = filename return response
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) task_data, _, _ = get_sample_task(config) except (ValueError, ValidationError, lxml.etree.Error, KeyError): response = HttpResponse('error while example generating', status=status.HTTP_400_BAD_REQUEST) else: response = HttpResponse(json.dumps(task_data)) return response
def api_import_example(): """ Generate upload data example by config only """ # django compatibility request.GET = request.args request.POST = request.form project = project_get_or_create() config = request.GET.get('label_config', '') if not config: config = request.POST.get('label_config', '') try: 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
def process(self, args): """ Return a list of all users. """ if request.method == "GET": return self.process_get(request, args) if request.method == "POST": return self.process_post(request, args) if request.method == "PUT": return self.process_put(request, args) if request.method == "PATCH": return self.process_patch(request, args) if request.method == "DELETE": return self.process_delete(request, args) return HttpResponse('this is a ' + str(request.method))
def process_post(self, request, vars): event = request.data ctx = request.META handler = HandlerMixin() handler.get_event(event, ctx) return HttpResponse()
def error_view(request): logger.error('system-error 500') return HttpResponse(status=500)
def page_not_found_view(request): logger.error('system-error 404') return HttpResponse(status=404)
def permission_denied_view(request): logger.error('system-error 403') return HttpResponse(status=403)
def bad_request_view(request): logger.debug('system-error 400') return HttpResponse(status=400)