5
5
import urllib
6
6
import pyfive
7
7
import time
8
+ from pyfive .h5d import StoreInfo
8
9
9
10
import s3fs
10
11
@@ -307,8 +308,8 @@ def _get_selection(self, *args):
307
308
name = self .ds .name
308
309
dtype = np .dtype (self .ds .dtype )
309
310
# hopefully fix pyfive to get a dtype directly
310
- array = pyfive .ZarrArrayStub (self .ds .shape , self .ds .chunks )
311
- ds = self .ds ._dataobjects
311
+ array = pyfive .indexing . ZarrArrayStub (self .ds .shape , self .ds .chunks )
312
+ ds = self .ds .id
312
313
313
314
self .metric_data ['args' ] = args
314
315
self .metric_data ['dataset shape' ] = self .ds .shape
@@ -318,7 +319,7 @@ def _get_selection(self, *args):
318
319
else :
319
320
compressor , filters = decode_filters (ds .filter_pipeline , dtype .itemsize , name )
320
321
321
- indexer = pyfive .OrthogonalIndexer (* args , array )
322
+ indexer = pyfive .indexing . OrthogonalIndexer (* args , array )
322
323
out_shape = indexer .shape
323
324
#stripped_indexer = [(a, b, c) for a,b,c in indexer]
324
325
drop_axes = indexer .drop_axes and keepdims
@@ -334,7 +335,7 @@ def _from_storage(self, ds, indexer, chunks, out_shape, out_dtype, compressor, f
334
335
out = []
335
336
counts = []
336
337
else :
337
- out = np .empty (out_shape , dtype = out_dtype , order = ds .order )
338
+ out = np .empty (out_shape , dtype = out_dtype , order = ds ._order )
338
339
counts = None # should never get touched with no method!
339
340
340
341
# Create a shared session object.
@@ -364,10 +365,10 @@ def _from_storage(self, ds, indexer, chunks, out_shape, out_dtype, compressor, f
364
365
365
366
if ds .chunks is not None :
366
367
t1 = time .time ()
367
- ds ._get_chunk_addresses ()
368
+ # ds._get_chunk_addresses()
368
369
t2 = time .time () - t1
369
370
self .metric_data ['indexing time (s)' ] = t2
370
- self .metric_data ['chunk number' ] = len (ds ._zchunk_index )
371
+ # self.metric_data['chunk number'] = len(ds._zchunk_index)
371
372
chunk_count = 0
372
373
t1 = time .time ()
373
374
with concurrent .futures .ThreadPoolExecutor (max_workers = self ._max_threads ) as executor :
@@ -464,15 +465,17 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
464
465
#FIXME: Do, we, it's not actually used?
465
466
466
467
"""
467
-
468
- offset , size , filter_mask = ds .get_chunk_details (chunk_coords )
468
+
469
+ # retrieve coordinates from chunk index
470
+ storeinfo = ds .get_chunk_info_from_chunk_coord (chunk_coords )
471
+ offset , size = storeinfo .byte_offset , storeinfo .size
469
472
self .data_read += size
470
473
471
474
if self .storage_type == 's3' and self ._version == 1 :
472
475
473
- tmp , count = reduce_opens3_chunk (ds .fh , offset , size , compressor , filters ,
476
+ tmp , count = reduce_opens3_chunk (ds ._fh , offset , size , compressor , filters ,
474
477
self .missing , ds .dtype ,
475
- chunks , ds .order ,
478
+ chunks , ds ._order ,
476
479
chunk_selection , method = self .method
477
480
)
478
481
@@ -499,7 +502,7 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
499
502
size , compressor , filters ,
500
503
self .missing , np .dtype (ds .dtype ),
501
504
chunks ,
502
- ds .order ,
505
+ ds ._order ,
503
506
chunk_selection ,
504
507
operation = self ._method )
505
508
else :
@@ -518,7 +521,7 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
518
521
size , compressor , filters ,
519
522
self .missing , np .dtype (ds .dtype ),
520
523
chunks ,
521
- ds .order ,
524
+ ds ._order ,
522
525
chunk_selection ,
523
526
operation = self ._method )
524
527
elif self .storage_type == 'ActivePosix' and self .version == 2 :
@@ -531,7 +534,7 @@ def _process_chunk(self, session, ds, chunks, chunk_coords, chunk_selection, cou
531
534
# although we will version changes.
532
535
tmp , count = reduce_chunk (self .filename , offset , size , compressor , filters ,
533
536
self .missing , ds .dtype ,
534
- chunks , ds .order ,
537
+ chunks , ds ._order ,
535
538
chunk_selection , method = self .method )
536
539
537
540
if self .method is not None :
0 commit comments