Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# uses nose test generators
def check(error_type, args_dict):
nt.assert_raises(error_type, BloscpackHeader, **args_dict)
for error_type, args_dict in [
(ValueError, {'format_version': -1}),
(ValueError, {'format_version': MAX_FORMAT_VERSION+1}),
(TypeError, {'format_version': 'foo'}),
(ValueError, {'checksum': -1}),
(ValueError, {'checksum': len(checksums.CHECKSUMS)+1}),
(exceptions.NoSuchChecksum, {'checksum': 'foo'}),
(ValueError, {'typesize': -1}),
(ValueError, {'typesize': blosc.BLOSC_MAX_TYPESIZE+1}),
(TypeError, {'typesize': 'foo'}),
(ValueError, {'chunk_size': blosc.BLOSC_MAX_BUFFERSIZE+1}),
(ValueError, {'chunk_size': -2}),
(TypeError, {'chunk_size': 'foo'}),
(ValueError, {'last_chunk': blosc.BLOSC_MAX_BUFFERSIZE+1}),
(ValueError, {'last_chunk': -2}),
(TypeError, {'last_chunk': 'foo'}),
(ValueError, {'nchunks': MAX_CHUNKS+1}),
(ValueError, {'nchunks': -2}),
(TypeError, {'nchunks': 'foo'}),
(ValueError, {'max_app_chunks': MAX_CHUNKS+1}),
(ValueError, {'max_app_chunks': -1}),
(TypeError, {'max_app_chunks': 'foo'}),
# sum of nchunks and max_app_chunks
(ValueError, {'nchunks': MAX_CHUNKS//2+1,
'max_app_chunks': MAX_CHUNKS//2+1}),
# check that max_app_chunks is zero
(ValueError, {'nchunks': -1,
def pack_unpack_extreme():
""" Test on somewhat larer arrays, uses loads of memory. """
# this will create a huge array, and then use the
# blosc.BLOSC_MAX_BUFFERSIZE as chunk-szie
pack_unpack(300, chunk_size=blosc.BLOSC_MAX_BUFFERSIZE,
progress=simple_progress)
def _write_frame(self):
"""
Put :attr:`.frame` into the :attr:`._write_q`, optionally compressing it with :func:`blosc.pack_array`
"""
try:
if self.blosc:
self._write_q.put_nowait((self.frame[0], blosc.pack_array(self.frame[1])))
else:
self._write_q.put_nowait(self.frame)
except Full:
self.logger.exception('Frame {} could not be written, queue full'.format(self.frame_n))
def compressor_list():
"""
compressor_list()
Returns a list of compressors available in C library.
Parameters
----------
None
Returns
-------
out : list
The list of names.
"""
return _ext.compressor_list().split(',')
def save_array_compressed(filename, arr: np.ndarray):
encoded = array_to_bytes(arr)
compressed = blosc.compress(encoded, arr.dtype.itemsize, clevel=9, shuffle=True, cname='lz4hc')
with open(filename, mode='wb') as f:
f.write(compressed)
def missingHashIterator(commit, hashes, err, pb2_func):
hash_bytes = msgpack.packb(hashes)
comp_bytes = blosc.compress(
hash_bytes, cname='blosclz', clevel=3, typesize=1, shuffle=blosc.SHUFFLE)
rpc_method = pb2_func(
commit=commit,
total_byte_size=len(comp_bytes),
error=err)
chunkIterator = chunk_bytes(comp_bytes)
for bchunk in chunkIterator:
rpc_method.hashs = bchunk
yield rpc_method
log.debug("Completely empty volume, not downsampling")
return
# Create downsampled cube
new_dim = XYZ(*CUBOIDSIZE[resolution + 1])
cube = Buffer.zeros(new_dim, dtype=np_types[data_type], order='C')
cube.dim = new_dim
cube.cubes = XYZ(1,1,1)
downsample_cube(volume, cube, annotation_chan)
target = target / step # scale down the output
# Save new cube in S3
obj_key = HashedKey(iso, col_id, exp_id, chan_id, resolution + 1, t, target.morton, version=version)
compressed = blosc.compress(cube, typesize=(np.dtype(cube.dtype).itemsize))
s3.put(obj_key, compressed)
# Update indicies
# Same key scheme, but without the version
obj_key = HashedKey(iso, col_id, exp_id, chan_id, resolution + 1, t, target.morton)
# Create S3 Index if it doesn't exist
idx_key = S3IndexKey(obj_key, version)
if not s3_index.exists(idx_key):
ingest_job = 0 # Valid to be 0, as posting a cutout uses 0
idx_key = S3IndexKey(obj_key,
version,
col_id,
'{}&{}&{}&{}'.format(exp_id, chan_id, resolution + 1, ingest_job),
# Replaced call to SPDB AWSObjectStore.generate_lookup_key, as SPDB master doesn't contain this call
# AWSObjectStore.generate_lookup_key(col_id, exp_id, chan_id, resolution + 1)
'{}&{}&{}&{}&{}'.format(col_id, exp_id, chan_id, resolution + 1, randrange(LOOKUP_KEY_MAX_N)))
assert len(data.shape) < 3
# first we pass the data size
size = data.size
sizes = mpi_comm.gather(size, root=root) or []
# now we pass the data
displacements = [numpy.int64(sum(sizes[:i])) for i in range(len(sizes))]
np_type = get_np_dtype(dtype)
mpi_type = get_mpi_type(dtype)
data_shape = data.shape
if not compress:
gdata = numpy.empty(numpy.int64(sum(sizes)), dtype=np_type)
mpi_comm.Gatherv([data.flatten(), size, mpi_type], [gdata, (sizes, displacements), mpi_type], root=root)
else:
data = blosc.compress(data, typesize=mpi_type.size, cname='blosclz')
data = mpi_comm.gather(data, root=0)
gdata = numpy.empty(0, dtype=np_type)
if comm.rank == 0:
for blosc_data in data:
gdata = numpy.concatenate((gdata, numpy.frombuffer(blosc.decompress(blosc_data), dtype=np_type)))
if len(data_shape) == 1:
return gdata
else:
if shape == 0:
num_lines = data_shape[0]
if num_lines > 0:
return gdata.reshape((num_lines, gdata.size//num_lines))
else:
return gdata.reshape((0, gdata.shape[1]))
if shape == 1:
renderer_context["accepted_media_type"] = 'application/json'
self.media_type = 'application/json'
self.format = 'json'
err_msg = {"status": 403, "message": "Access denied, are you logged in?",
"code": 2005}
jr = JSONRenderer()
return jr.render(err_msg, 'application/json', renderer_context)
if not data["data"].data.flags['C_CONTIGUOUS']:
data["data"].data = np.ascontiguousarray(data["data"].data, dtype=data["data"].data.dtype)
# Return data, squeezing time dimension if only a single point
if data["time_request"]:
return blosc.compress(data["data"].data, typesize=renderer_context['view'].bit_depth)
else:
return blosc.compress(np.squeeze(data["data"].data, axis=(0,)),
typesize=renderer_context['view'].bit_depth)