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