Skip to content

Commit 9fbdc32

Browse files
author
anna-singleton-resolver
committed
feat: set brotli compression quality
1 parent 43b7980 commit 9fbdc32

3 files changed

Lines changed: 7 additions & 4 deletions

File tree

src/resolver_athena_client/client/athena_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ async def classify_single(
177177

178178
# Apply compression if enabled
179179
if self.options.compress_images:
180-
processed_image = compress_image(processed_image)
180+
processed_image = compress_image(processed_image, self.options.compression_quality)
181181

182182
request_encoding = (
183183
RequestEncoding.REQUEST_ENCODING_BROTLI
@@ -243,7 +243,7 @@ async def transform_image(image_data: ImageData) -> ClassificationInput:
243243

244244
# Apply compression if enabled
245245
if self.options.compress_images:
246-
compressed_image = compress_image(resized_image)
246+
compressed_image = compress_image(resized_image, self.options.compression_quality)
247247
else:
248248
compressed_image = resized_image
249249

src/resolver_athena_client/client/athena_options.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,4 @@ class AthenaOptions:
6666
correlation_provider: type[CorrelationProvider] = HashCorrelationProvider
6767
timeout: float | None = 120.0
6868
keepalive_interval: float | None = None
69+
compression_quality: int = 11 # Brotli quality level (0-11)

src/resolver_athena_client/client/transformers/core.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,21 @@ def process_image() -> tuple[bytes, bool]:
8282
return image_data
8383

8484

85-
def compress_image(image_data: ImageData) -> ImageData:
85+
def compress_image(image_data: ImageData, quality: int = 11) -> ImageData:
8686
"""Compress image data using Brotli compression.
8787
8888
Args:
8989
----
9090
image_data: The ImageData object to compress
91+
quality: Compression quality level (0-11), higher is better compression
92+
but slower. Default is 11 for maximum compression.
9193
9294
Returns:
9395
-------
9496
The same ImageData object with compressed data (modified in-place)
9597
9698
"""
97-
compressed_bytes = brotli.compress(image_data.data)
99+
compressed_bytes = brotli.compress(image_data.data, quality=quality)
98100
# Modify existing ImageData with compressed bytes but preserve hashes
99101
# since compression doesn't change image content
100102
image_data.data = compressed_bytes

0 commit comments

Comments
 (0)