Skip to content

Commit 5c8095e

Browse files
author
Bryan Lawrence
committed
Conforming to current index structure a bit better
1 parent ab64817 commit 5c8095e

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

activestorage/active.py

+13-8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import urllib
66
import pyfive
77
import time
8+
from operator import mul
9+
from pyfive.h5d import StoreInfo
810

911
import s3fs
1012

@@ -334,7 +336,7 @@ def _from_storage(self, ds, indexer, chunks, out_shape, out_dtype, compressor, f
334336
out = []
335337
counts = []
336338
else:
337-
out = np.empty(out_shape, dtype=out_dtype, order=ds.order)
339+
out = np.empty(out_shape, dtype=out_dtype, order=ds._order)
338340
counts = None # should never get touched with no method!
339341

340342
# Create a shared session object.
@@ -464,16 +466,19 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
464466
#FIXME: Do, we, it's not actually used?
465467
466468
"""
467-
# This should contain all the valid chunks
468-
print(ds._index.keys(), len(ds._index.keys()))
469-
offset, size, filter_mask = ds._index[chunk_coords]
469+
# map into correct coordinate space for h5py/pyfive
470+
chunk_coords = tuple(map(mul, chunk_coords, chunks))
471+
# retrieve coordinates from chunk index
472+
storeinfo = ds._index[chunk_coords]
473+
# extract what we need here.
474+
offset, size = storeinfo.byte_offset, storeinfo.size
470475
self.data_read += size
471476

472477
if self.storage_type == 's3' and self._version == 1:
473478

474479
tmp, count = reduce_opens3_chunk(ds.fh, offset, size, compressor, filters,
475480
self.missing, ds.dtype,
476-
chunks, ds.order,
481+
chunks, ds_order,
477482
chunk_selection, method=self.method
478483
)
479484

@@ -500,7 +505,7 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
500505
size, compressor, filters,
501506
self.missing, np.dtype(ds.dtype),
502507
chunks,
503-
ds.order,
508+
ds._order,
504509
chunk_selection,
505510
operation=self._method)
506511
else:
@@ -519,7 +524,7 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
519524
size, compressor, filters,
520525
self.missing, np.dtype(ds.dtype),
521526
chunks,
522-
ds.order,
527+
ds._order,
523528
chunk_selection,
524529
operation=self._method)
525530
elif self.storage_type=='ActivePosix' and self.version==2:
@@ -532,7 +537,7 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
532537
# although we will version changes.
533538
tmp, count = reduce_chunk(self.filename, offset, size, compressor, filters,
534539
self.missing, ds.dtype,
535-
chunks, ds.order,
540+
chunks, ds._order,
536541
chunk_selection, method=self.method)
537542

538543
if self.method is not None:

0 commit comments

Comments
 (0)