1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-14 00:07:14 +03:00

Added util directory and http util file

HTTP utils are anything generally useful for HTTP things, currently
thats just compressing a string if its larger than a given number of
bytes.

These libraries are intended to be available to plugins
This commit is contained in:
A_D 2022-01-21 00:09:39 +02:00
parent 3814f9ebb9
commit d65bcbbf0a
No known key found for this signature in database
GPG Key ID: 4BE9EB7DF45076C4

24
util/http.py Normal file
View File

@ -0,0 +1,24 @@
"""Utilities for dealing with HTTP."""
from __future__ import annotations
from gzip import compress
__all__ = ['gzip']
def gzip(data: str | bytes, max_size: int = 512, encoding='utf-8') -> tuple[bytes, bool]:
"""
Compress the given data if the max size is greater than specified.
:param data: The data to compress
:param max_size: The max size of data, in bytes, defaults to 512
:param encoding: The encoding to use if data is a str, defaults to 'utf-8'
:return: the payload to send, and a bool indicating compression state
"""
if isinstance(data, str):
data = data.encode(encoding=encoding)
if len(data) <= max_size:
return data, False
return compress(data), True