Example #1
0
def shortcuts(request):
    user = request.user if request.user.is_authenticated else None
    if request.method == 'POST':
        if request.POST.get('op') == 'apply':
            jf = request.POST.get("filters",'{}')
            filters = json.loads(jf) if jf.strip() else {}
            model_pk = request.POST.get("model_pk")
            video_pks = request.POST.getlist('video_pk')
            target = request.POST.get('target')
            frames_batch_size = request.POST.get('frames_batch_size',)
            if not frames_batch_size:
                frames_batch_size = defaults.DEFAULT_FRAMES_BATCH_SIZE
            segments_batch_size = request.POST.get('segments_batch_size')
            if not segments_batch_size:
                segments_batch_size = defaults.DEFAULT_SEGMENTS_BATCH_SIZE
            process_pk = view_shared.model_apply(model_pk,video_pks,filters,target,int(segments_batch_size),
                                                 int(frames_batch_size),user)
            return redirect('process_detail',pk=process_pk)
        elif request.POST.get('op') == 'create_retriever':
            jf = request.POST.get("source_filters",'{}')
            filters = json.loads(jf) if jf.strip() else {}
            name = request.POST.get('name')
            indexer_shasum = request.POST.get('indexer_shasum')
            approximator_shasum = request.POST.get('approximator_shasum')
            if approximator_shasum:
                approximator_shasum = None
                algorithm = Retriever.LOPQ
            else:
                algorithm = Retriever.EXACT
            _ = view_shared.create_retriever(name,algorithm,filters,indexer_shasum,approximator_shasum,user)
            return redirect('retriever_list')
        else:
            raise NotImplementedError(request.POST.get('op'))
    else:
        raise NotImplementedError("Only POST allowed")
Example #2
0
def shortcuts(request):
    user = request.user if request.user.is_authenticated else None
    if request.method == 'POST':
        if request.POST.get('op') == 'apply':
            jf = request.POST.get("filters", '{}')
            filters = json.loads(jf) if jf.strip() else {}
            model_pk = request.POST.get("model_pk")
            video_pks = request.POST.getlist('video_pk')
            target = request.POST.get('target')
            frames_batch_size = request.POST.get('frames_batch_size', )
            if not frames_batch_size:
                frames_batch_size = defaults.DEFAULT_FRAMES_BATCH_SIZE
            segments_batch_size = request.POST.get('segments_batch_size')
            if not segments_batch_size:
                segments_batch_size = defaults.DEFAULT_SEGMENTS_BATCH_SIZE
            process_pk = view_shared.model_apply(model_pk, video_pks, filters,
                                                 target,
                                                 int(segments_batch_size),
                                                 int(frames_batch_size), user)
            return redirect('process_detail', pk=process_pk)
        elif request.POST.get('op') == 'create_retriever':
            jf = request.POST.get("source_filters", '{}')
            filters = json.loads(jf) if jf.strip() else {}
            name = request.POST.get('name')
            indexer_shasum = request.POST.get('indexer_shasum')
            approximator_shasum = request.POST.get('approximator_shasum')
            if approximator_shasum:
                approximator_shasum = None
                algorithm = Retriever.LOPQ
            else:
                algorithm = Retriever.EXACT
            _ = view_shared.create_retriever(name, algorithm, filters,
                                             indexer_shasum,
                                             approximator_shasum, user)
            return redirect('retriever_list')
        elif request.POST.get('op') == 'create_approximator_training_set':
            name = request.POST.get('name')
            video_pks = request.POST.getlist('video_pk')
            indexer_shasum = request.POST.get('indexer_shasum')
            _ = view_shared.create_approximator_training_set(
                name, indexer_shasum, video_pks, user)
            return redirect('training_set_list')
        elif request.POST.get('op') == 'perform_approximator_training':
            training_set_pk = request.POST.get('lopq_training_set_pk')
            dt = TrainingSet.objects.get(pk=training_set_pk)
            args = {}
            args['trainer'] = "LOPQ"
            args['name'] = request.POST.get('name')
            args['indexer_shasum'] = dt.source_filters['indexer_shasum']
            args['components'] = request.POST.get('components')
            args['m'] = request.POST.get('m')
            args['v'] = request.POST.get('v')
            args['sub'] = request.POST.get('sub')
            process_pk = view_shared.perform_training(training_set_pk, args,
                                                      user)
            return redirect('process_detail', process_pk)
        else:
            raise NotImplementedError(request.POST.get('op'))
    else:
        raise NotImplementedError("Only POST allowed")