

def getCacheRequestComputationResult(cacheCallElement):
    bucketname = cacheCallElement[1].pyvalOrNone
    keyname = cacheCallElement[2].pyvalOrNone
    if ((not isinstance(bucketname, str)) or (not isinstance(keyname, str))):
        return ForaNative.ComputationResult.Exception(ForaNative.ImplValContainer(('Badly formed S3 dataset request: %s' % cacheCallElement)))
    s3Interface = getCurrentS3Interface()
    if s3Interface.keyExists(bucketname, keyname):
        keysAndSizesMatching = [(keyname, s3Interface.getKeySize(bucketname, keyname))]
    else:
        keysAndSizesMatching = s3Interface.listKeysWithPrefix(bucketname, (keyname + '_'))
        indicesKeysAndSizes = []
        for (key, size, mtime) in keysAndSizesMatching:
            try:
                index = int(key[(len(keyname) + 1):])
                indicesKeysAndSizes.append((index, key, size))
            except ValueError:
                pass
        keysAndSizesMatching = [(key, size) for (_, key, size) in sorted(indicesKeysAndSizes)]
    if (not keysAndSizesMatching):
        return ForaNative.ComputationResult.Exception(ForaNative.ImplValContainer(('No keys matching %s/%s using %s' % (bucketname, keyname, s3Interface))))
    wholeVectorIVC = ForaNative.getEmptyVector()
    for (key, size) in keysAndSizesMatching:
        CHUNK_SIZE = ((10 * 1024) * 1024)
        chunks = getAppropriateChunksForSize(size, CHUNK_SIZE)
        for (lowIndex, highIndex) in chunks:
            externalDatasetDesc = ForaNative.ExternalDatasetDescriptor.S3Dataset(bucketname, key, lowIndex, highIndex)
            vectorDataId = ForaNative.VectorDataID.External(externalDatasetDesc)
            vectorIVC = ForaNative.createFORAFreeBinaryVector(vectorDataId, (highIndex - lowIndex))
            wholeVectorIVC = ForaNative.concatenateVectors(wholeVectorIVC, vectorIVC)
    return ForaNative.ComputationResult.Result(wholeVectorIVC, ForaNative.ImplValContainer())

dataset/ETHPy150Open ufora/ufora/ufora/FORA/python/CacheSemantics.py getCacheRequestComputationResult/original