Beispiel #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
Beispiel #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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
    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))
Beispiel #6
0
 def process_post(self, request, vars):
     event = request.data
     ctx = request.META
     handler = HandlerMixin()
     handler.get_event(event, ctx)
     return HttpResponse()
Beispiel #7
0
def error_view(request):
    logger.error('system-error 500')
    return HttpResponse(status=500)
Beispiel #8
0
def page_not_found_view(request):
    logger.error('system-error 404')
    return HttpResponse(status=404)
Beispiel #9
0
def permission_denied_view(request):
    logger.error('system-error 403')
    return HttpResponse(status=403)
Beispiel #10
0
def bad_request_view(request):
    logger.debug('system-error 400')
    return HttpResponse(status=400)