Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions src/mdio/builder/schemas/compressors.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,29 @@

from pydantic import Field
from pydantic import model_validator
from zarr.codecs import BloscCname
from zarr.codecs import BloscShuffle

from mdio.builder.schemas.core import CamelCaseStrictModel


class BloscCname(StrEnum):
"""Supported Blosc compression algorithms."""

lz4 = "lz4"
lz4hc = "lz4hc"
blosclz = "blosclz"
snappy = "snappy"
zlib = "zlib"
zstd = "zstd"


class BloscShuffle(StrEnum):
"""Supported Blosc shuffle modes."""

noshuffle = "noshuffle"
shuffle = "shuffle"
bitshuffle = "bitshuffle"


class Blosc(CamelCaseStrictModel):
"""Data Model for Blosc options."""

Expand Down
2 changes: 1 addition & 1 deletion src/mdio/core/grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

import numpy as np
import zarr
from numcodecs.zarr3 import Blosc
from zarr.codecs import BloscCodec
from zarr.codecs.numcodecs import Blosc

from mdio.constants import UINT32_MAX
from mdio.constants import ZarrFormat
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_optimize_access_pattern.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ def test_optimize_access_patterns_custom_compressor(self, mdio_dataset_path: str
assert "fast_crossline" in ds.variables
assert ds["fast_crossline"].encoding["chunks"] == (32, 8, 32)
assert isinstance(actual_compressor, zarr_BloscCodec)
assert actual_compressor.cname == BloscCname.blosclz
assert getattr(actual_compressor.cname, "value", actual_compressor.cname) == BloscCname.blosclz
assert actual_compressor.clevel == 1

def test_user_provided_client(self, mdio_dataset_path: str) -> None:
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/v1/test_dataset_builder_add_coordinate.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
"""Tests the schema v1 dataset_builder.add_coordinate() public API."""

import pytest
from zarr.codecs import BloscCname

from mdio.builder.dataset_builder import MDIODatasetBuilder
from mdio.builder.dataset_builder import _BuilderState
from mdio.builder.schemas.compressors import Blosc
from mdio.builder.schemas.compressors import BloscCname
from mdio.builder.schemas.dtype import ScalarType
from mdio.builder.schemas.v1.units import LengthUnitEnum
from mdio.builder.schemas.v1.units import LengthUnitModel
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/v1/test_dataset_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,9 +237,9 @@ def test_compressor_encoding_blosc(self) -> None:
result = _compressor_to_encoding(mdio_compressor)

assert isinstance(result["compressors"], BloscCodec)
assert result["compressors"].cname == BloscCname.lz4
assert getattr(result["compressors"].cname, "value", result["compressors"].cname) == BloscCname.lz4
assert result["compressors"].clevel == 5
assert result["compressors"].shuffle == BloscShuffle.bitshuffle
assert getattr(result["compressors"].shuffle, "value", result["compressors"].shuffle) == BloscShuffle.bitshuffle
assert result["compressors"].blocksize == 1024

def test_compressor_encoding_zfp(self) -> None:
Expand Down
14 changes: 3 additions & 11 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading