| 96 | |
| 97 | @dataclass |
| 98 | class AttributeCodecs: |
| 99 | means: CodecConfig = field(default_factory=lambda: CodecConfig("_compress_png_16bit", "_decompress_png_16bit")) |
| 100 | scales: CodecConfig = field(default_factory=lambda: CodecConfig("_compress_factorized_ans", "_decompress_factorized_ans")) |
| 101 | quats: CodecConfig = field(default_factory=lambda: CodecConfig("_compress_factorized_ans", "_decompress_factorized_ans")) |
| 102 | opacities: CodecConfig = field(default_factory=lambda: CodecConfig("_compress_png", "_decompress_png")) |
| 103 | sh0: CodecConfig = field(default_factory=lambda: CodecConfig("_compress_png", "_decompress_png")) |
| 104 | shN: CodecConfig = field(default_factory=lambda: CodecConfig("_compress_masked_kmeans", "_decompress_masked_kmeans")) |
| 105 | |
| 106 | def to_dict(self) -> Dict[str, Dict[str, str]]: |
| 107 | return { |
| 108 | attr: {"encode": getattr(self, attr).encode, "decode": getattr(self, attr).decode} |
| 109 | for attr in ["means", "scales", "quats", "opacities", "sh0", "shN"] |
| 110 | } |
| 111 | |
| 112 | @dataclass |
| 113 | class CompressionConfig: |
no test coverage detected