Exemple #1
0
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
Exemple #2
0
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