Coverage for src/polystore/config.py: 100%
16 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-03 06:58 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-03 06:58 +0000
1from dataclasses import dataclass, field
2from enum import Enum
3from typing import Optional, Any
6class ZarrChunkStrategy(Enum):
7 WELL = 'well'
8 FILE = 'file'
11@dataclass
12class CompressorConfig:
13 """Minimal compressor config used by Zarr backend when real compressors aren't provided."""
14 name: str = 'none'
16 def create_compressor(self, level: Optional[int], shuffle: bool = True) -> Optional[Any]:
17 """Return a compressor object acceptable to zarr or None to disable compression."""
18 # Minimal fallback: return None (no compression)
19 return None
22@dataclass
23class ZarrConfig:
24 """Minimal Zarr configuration dataclass for polystore (OpenHCS-agnostic)."""
25 compression_level: Optional[int] = None
26 compressor: CompressorConfig = field(default_factory=CompressorConfig)
27 chunk_strategy: ZarrChunkStrategy = ZarrChunkStrategy.WELL