77
88import numpy as np
99import pytest
10- from fsspec . implementations . local import LocalFileSystem
10+ import zarr
1111from numpy .typing import NDArray
1212from zarr import Group
1313from zarr import consolidate_metadata
14- from zarr . storage import FsspecStore
14+ from zarr import open_group
1515
1616from mdio import MDIOReader
1717from mdio .core import Dimension
3030
3131
3232@pytest .fixture (scope = "module" )
33- def mock_store (tmp_path_factory ):
33+ def mock_root_group (tmp_path_factory ) -> Group :
3434 """Make a mocked MDIO store for writing."""
35+ zarr .config .set ({"default_zarr_format" : 2 , "write_empty_chunks" : False })
3536 tmp_dir = tmp_path_factory .mktemp ("mdio" )
36- fs = LocalFileSystem ()
37- return FsspecStore (fs , path = tmp_dir .name )
37+ return open_group (tmp_dir .name , mode = "w" )
3838
3939
4040@pytest .fixture
@@ -75,7 +75,7 @@ def mock_data(mock_coords):
7575
7676@pytest .fixture
7777def mock_mdio (
78- mock_store : FsspecStore ,
78+ mock_root_group : Group ,
7979 mock_dimensions : list [Dimension ],
8080 mock_coords : tuple [NDArray ],
8181 mock_data : NDArray ,
@@ -84,7 +84,7 @@ def mock_mdio(
8484):
8585 """This mocks most of mdio.converters.segy in memory."""
8686 zarr_root = create_zarr_hierarchy (
87- store = mock_store ,
87+ root_group = mock_root_group ,
8888 overwrite = True ,
8989 )
9090
@@ -108,13 +108,14 @@ def mock_mdio(
108108 write_attribute (name = "dimension" , zarr_group = zarr_root , attribute = dimensions_dict )
109109 write_attribute (name = "trace_count" , zarr_group = zarr_root , attribute = trace_count )
110110
111- zarr_root ["metadata" ].create_dataset (
112- data = grid .live_mask ,
111+ live_mask_arr = zarr_root ["metadata" ].create_array (
113112 name = "live_mask" ,
113+ dtype = "bool" ,
114114 shape = grid .shape [:- 1 ],
115- chunks = - 1 ,
116- dimension_separator = "/" ,
115+ chunks = grid . shape [: - 1 ] ,
116+ chunk_key_encoding = { "name" : "v2" , "separator" : "/" } ,
117117 )
118+ live_mask_arr [...] = grid .live_mask [...]
118119
119120 write_attribute (name = "created" , zarr_group = zarr_root , attribute = str (datetime .now ()))
120121 write_attribute (name = "api_version" , zarr_group = zarr_root , attribute = API_VERSION )
@@ -132,21 +133,21 @@ def mock_mdio(
132133 for key , value in stats .items ():
133134 write_attribute (name = key , zarr_group = zarr_root , attribute = value )
134135
135- data_arr = data_grp .create_dataset (
136+ data_arr = data_grp .create_array (
136137 "chunked_012" ,
137138 data = mock_data ,
138- dimension_separator = "/" ,
139+ chunk_key_encoding = { "name" : "v2" , "separator" : "/" } ,
139140 )
140141
141- metadata_grp .create_dataset (
142+ metadata_grp .create_array (
142143 data = il_grid * xl_grid ,
143144 name = "_" .join (["chunked_012" , "trace_headers" ]),
144145 shape = grid .shape [:- 1 ], # Same spatial shape as data
145146 chunks = data_arr .chunks [:- 1 ], # Same spatial chunks as data
146- dimension_separator = "/" ,
147+ chunk_key_encoding = { "name" : "v2" , "separator" : "/" } ,
147148 )
148149
149- consolidate_metadata (mock_store )
150+ consolidate_metadata (mock_root_group . store )
150151
151152 return zarr_root
152153
0 commit comments