@@ -13,29 +13,36 @@ def fromh5(path, datapath=None, dataslice=None, asnumpy=True, preptrain=None):
13
13
"""
14
14
# Check if path exists (thanks Lukas!)
15
15
assert os .path .exists (path ), "Path {} does not exist." .format (path )
16
- # Init file
17
- h5file = h5 .File (path )
18
- # Init dataset
19
- h5dataset = h5file [datapath ] if datapath is not None else h5file .values ()[0 ]
20
- # Slice dataset
21
- h5dataset = h5dataset [dataslice ] if dataslice is not None else h5dataset
22
- # Convert to numpy if required
23
- h5dataset = np .asarray (h5dataset ) if asnumpy else h5dataset
24
- # Apply preptrain
25
- h5dataset = preptrain (h5dataset ) if preptrain is not None else h5dataset
26
- # Close file
27
- h5file .close ()
28
- # Return
16
+ with h5 .File (path , 'r' ) as f :
17
+ # Init dataset
18
+ h5dataset = f [datapath ] if datapath is not None else f .values ()[0 ]
19
+ # Slice dataset
20
+ h5dataset = h5dataset [dataslice ] if dataslice is not None else h5dataset
21
+ # Convert to numpy if required
22
+ h5dataset = np .asarray (h5dataset ) if asnumpy else h5dataset
23
+ # Apply preptrain
24
+ h5dataset = preptrain (h5dataset ) if preptrain is not None else h5dataset
29
25
return h5dataset
30
26
31
27
32
28
# TODO we could also do **h5_kwargs instead
33
29
def toh5 (data , path , datapath = 'data' , compression = None , chunks = None ):
34
30
"""Write `data` to a HDF5 volume."""
35
- with h5 .File (path , 'w' ) as f :
31
+ with h5 .File (path ) as f :
36
32
f .create_dataset (datapath , data = data , compression = compression , chunks = chunks )
37
33
38
34
35
+ def fromz5 (path , datapath , dataslice = None , n_threads = 8 ):
36
+ # we import z5py only here because we don't want to assume that it's in the env
37
+ import z5py
38
+ assert os .path .exists (path ), "Path {} does not exist." .format (path )
39
+ with z5py .File (path ) as f :
40
+ ds = f [datapath ]
41
+ ds .n_threads = n_threads
42
+ data = ds [:] if dataslice is None else ds [dataslice ]
43
+ return data
44
+
45
+
39
46
# Yaml to dict reader
40
47
def yaml2dict (path ):
41
48
if isinstance (path , dict ):
0 commit comments