compression utils
This commit is contained in:
parent
09acc845c0
commit
face6f95bc
2 changed files with 26 additions and 0 deletions
11
haiku_rag_slim/haiku/rag/store/compression.py
Normal file
11
haiku_rag_slim/haiku/rag/store/compression.py
Normal 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")
|
||||
15
tests/store/test_compression.py
Normal file
15
tests/store/test_compression.py
Normal 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
|
||||
Loading…
Reference in a new issue