예제 #1
0
def get_metadata(request, tensor_name):
    tensor = get_or_error(DerivedTensorData, dict(name=tensor_name))
    full_tensor = tensor.full_tensor

    full_sids_path = full_tensor.get_sids_path()
    sids = bytes_to_ndarray(full_sids_path, np.int32)

    metadata, headers = extract_tensor_metadata(sids, tensor.annotator)
    content = write_metadata(metadata, sids, headers)

    response = HttpResponse()
    response.write(content)
    response['Content-Type'] = 'text/tsv'
    response['Content-Length'] = len(content)
    return response
def get_ordination_metadata(request, ord_id, viewas):
    ord = get_or_error(Ordination, dict(id=ord_id))

    sids_path = ord.get_sids_path()
    sids = bytes_to_ndarray(sids_path, np.int32)

    viewas = get_or_error(User, dict(username=viewas))

    try:
        metadata, headers = extract_tensor_metadata(sids, viewas)
    except KeyError as e:
        err_message = 'Syllable #{} has been deleted from the database since the creation of this ordination and ' \
                      'thus renders it invalid. Please choose another one.'.format(str(e))
        raise CustomAssertionError(err_message)

    content = write_metadata(metadata, sids, headers)

    response = HttpResponse()
    response.write(content)
    response['Content-Type'] = 'text/tsv'
    response['Content-Length'] = len(content)
    return response