Skip to content

Commit 0928c29

Browse files
committed
migrate "none" compression
1 parent caabba7 commit 0928c29

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

zarr/storage.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,9 @@ def migrate_1to2(store):
793793
meta = meta_v1.decode_metadata(store['meta'])
794794
del store['meta']
795795
meta['filters'] = None
796+
if meta['compression'] and meta['compression'].lower() == 'none':
797+
meta['compression'] = None
798+
meta['compression_opts'] = None
796799
store[array_meta_key] = encode_array_metadata(meta)
797800

798801
# migrate user attributes

zarr/tests/test_storage.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -673,11 +673,22 @@ def test_migrate_1to2():
673673
assert '.zarray' in store
674674
assert 'attrs' not in store
675675
assert '.zattrs' in store
676-
meta_migrated = decode_array_metadata(store['.zarray'])
676+
meta_migrated = decode_array_metadata(store[array_meta_key])
677677
eq(2, meta_migrated['zarr_format'])
678678
# preserved fields
679679
for f in 'shape', 'chunks', 'dtype', 'compression', 'compression_opts', \
680680
'fill_value', 'order':
681681
eq(meta[f], meta_migrated[f])
682682
# migrate should have added empty filters field
683683
assert_is_none(meta_migrated['filters'])
684+
685+
# check 'none' compression is migrated to None (null in JSON)
686+
store = dict()
687+
meta['compression'] = 'none'
688+
meta_json = meta_v1.encode_metadata(meta)
689+
store['meta'] = meta_json
690+
store['attrs'] = json.dumps(dict()).encode('ascii')
691+
migrate_1to2(store)
692+
meta_migrated = decode_array_metadata(store[array_meta_key])
693+
assert_is_none(meta_migrated['compression'])
694+
assert_is_none(meta_migrated['compression_opts'])

0 commit comments

Comments
 (0)