20
20
ZARR_FORMAT , decode_group_metadata , encode_group_metadata
21
21
from zarr .compat import text_type
22
22
from zarr .storage import default_compressor
23
- from zarr .codecs import Zlib
23
+ from zarr .codecs import Zlib , Blosc
24
24
25
25
26
26
class StoreTests (object ):
@@ -670,18 +670,38 @@ def test_migrate_1to2():
670
670
671
671
# check results
672
672
assert 'meta' not in store
673
- assert '.zarray' in store
673
+ assert array_meta_key in store
674
674
assert 'attrs' not in store
675
- assert '.zattrs' in store
675
+ assert attrs_key in store
676
676
meta_migrated = decode_array_metadata (store [array_meta_key ])
677
677
eq (2 , meta_migrated ['zarr_format' ])
678
+
678
679
# preserved fields
679
- for f in 'shape' , 'chunks' , 'dtype' , 'compression' , 'compression_opts' , \
680
- 'fill_value' , 'order' :
680
+ for f in 'shape' , 'chunks' , 'dtype' , 'fill_value' , 'order' :
681
681
eq (meta [f ], meta_migrated [f ])
682
+
682
683
# migrate should have added empty filters field
683
684
assert_is_none (meta_migrated ['filters' ])
684
685
686
+ # check compression and compression_opts migrated to compressor
687
+ assert 'compression' not in meta_migrated
688
+ assert 'compression_opts' not in meta_migrated
689
+ eq (meta_migrated ['compressor' ], Zlib (1 ).get_config ())
690
+
691
+ # check dict compression_opts
692
+ store = dict ()
693
+ meta ['compression' ] = 'blosc'
694
+ meta ['compression_opts' ] = dict (cname = 'lz4' , clevel = 5 , shuffle = 1 )
695
+ meta_json = meta_v1 .encode_metadata (meta )
696
+ store ['meta' ] = meta_json
697
+ store ['attrs' ] = json .dumps (dict ()).encode ('ascii' )
698
+ migrate_1to2 (store )
699
+ meta_migrated = decode_array_metadata (store [array_meta_key ])
700
+ assert 'compression' not in meta_migrated
701
+ assert 'compression_opts' not in meta_migrated
702
+ eq (meta_migrated ['compressor' ],
703
+ Blosc (cname = 'lz4' , clevel = 5 , shuffle = 1 ).get_config ())
704
+
685
705
# check 'none' compression is migrated to None (null in JSON)
686
706
store = dict ()
687
707
meta ['compression' ] = 'none'
@@ -690,5 +710,6 @@ def test_migrate_1to2():
690
710
store ['attrs' ] = json .dumps (dict ()).encode ('ascii' )
691
711
migrate_1to2 (store )
692
712
meta_migrated = decode_array_metadata (store [array_meta_key ])
693
- assert_is_none (meta_migrated ['compression' ])
694
- assert_is_none (meta_migrated ['compression_opts' ])
713
+ assert 'compression' not in meta_migrated
714
+ assert 'compression_opts' not in meta_migrated
715
+ assert_is_none (meta_migrated ['compressor' ])
0 commit comments