compression utils

This commit is contained in:
Yiorgis Gozadinos 2026-01-10 15:11:58 +02:00
parent 09acc845c0
commit face6f95bc
No known key found for this signature in database
2 changed files with 26 additions and 0 deletions

View file

@ -0,0 +1,11 @@
import gzip
def compress_json(json_str: str) -> bytes:
"""Compress a JSON string with gzip."""
return gzip.compress(json_str.encode("utf-8"))
def decompress_json(data: bytes) -> str:
"""Decompress gzip-compressed data to a JSON string."""
return gzip.decompress(data).decode("utf-8")

View file

@ -0,0 +1,15 @@
from haiku.rag.store.compression import compress_json, decompress_json
class TestJsonCompression:
def test_compress_json_roundtrip(self):
json_str = '{"key": "value", "number": 42, "nested": {"a": 1}}'
compressed = compress_json(json_str)
decompressed = decompress_json(compressed)
assert decompressed == json_str
def test_compress_json_with_unicode(self):
json_str = '{"message": "Hello, 世界! 🌍"}'
compressed = compress_json(json_str)
decompressed = decompress_json(compressed)
assert decompressed == json_str