Added default compression level

This commit is contained in:
Philip Trauner 2016-09-23 14:19:04 +02:00
parent 3b7733aee8
commit f6c9e505e0

View file

@ -27,7 +27,7 @@ INVALID_DATA_TYPE = 3
META_ROUTE = "meta" META_ROUTE = "meta"
COMPRESSION_LEVEL = 3
@ -44,8 +44,8 @@ class Metadata:
def create_metadata(data_type, converted_route, indexed_dict=False): def create_metadata(data_type, converted_route, indexed_dict=False):
return struct.pack("bh", return struct.pack("bh",
DATA_TYPES[data_type] if not indexed_dict else DATA_TYPES[INDEXED_DICT], DATA_TYPES[data_type] if not indexed_dict else DATA_TYPES[INDEXED_DICT],
converted_route) converted_route)
@ -62,7 +62,7 @@ def prepare_data(data):
return data, original_data_type return data, original_data_type
def pack_message(data, exchange_route, compression_level, def pack_message(data, exchange_route, compression_level,
debug=False, indexed_dict=False): debug=False, indexed_dict=False):
data, original_data_type = prepare_data(data) data, original_data_type = prepare_data(data)
data = gzip.compress(data, compression_level) data = gzip.compress(data, compression_level)
@ -74,7 +74,7 @@ def pack_message(data, exchange_route, compression_level,
Logging.info("Packaged '%s' on route '%s': %s" % Logging.info("Packaged '%s' on route '%s': %s" %
(original_data_type.__name__, route, data_repr)) (original_data_type.__name__, route, data_repr))
""" """
return create_metadata(original_data_type, exchange_route, return create_metadata(original_data_type, exchange_route,
indexed_dict=indexed_dict) + data indexed_dict=indexed_dict) + data
@ -113,7 +113,7 @@ def convert_data(data, data_type, debug=False):
class Shared: class Shared:
def setup(self, routes, compression_level, debug=False): def setup(self, routes, compression_level=COMPRESSION_LEVEL, debug=False):
self.routes = routes self.routes = routes
self.compression_level = compression_level self.compression_level = compression_level
self.address, self.port = self.peer_address self.address, self.port = self.peer_address
@ -146,8 +146,8 @@ class Shared:
def patched_send(self, data, route, indexed_dict=False): def patched_send(self, data, route, indexed_dict=False):
self.raw_send(pack_message(data, self.reverse_exchange_routes[route], self.raw_send(pack_message(data, self.reverse_exchange_routes[route],
self.compression_level, debug=self.debug, self.compression_level, debug=self.debug,
indexed_dict=indexed_dict), binary=True) indexed_dict=indexed_dict), binary=True)
if self.debug: if self.debug:
data_repr = str(data).replace("\n", " ") data_repr = str(data).replace("\n", " ")
@ -161,7 +161,7 @@ class Shared:
class Server(Shared, WebSocket): class Server(Shared, WebSocket):
def setup(self, routes, compression_level, debug=False): def setup(self, routes, compression_level=COMPRESSION_LEVEL, debug=False):
super().setup(routes, compression_level, debug=debug) super().setup(routes, compression_level, debug=debug)
# Send replacement can't be done in the parent setup method because # Send replacement can't be done in the parent setup method because
# both client and server use a method from a different module. # both client and server use a method from a different module.
@ -182,13 +182,13 @@ class Server(Shared, WebSocket):
class Client(WebSocketClient, Shared): class Client(WebSocketClient, Shared):
def setup(self, routes, compression_level, debug=False): def setup(self, routes, compression_level=COMPRESSION_LEVEL, debug=False):
super().setup(routes, compression_level, debug=debug) super().setup(routes, compression_level, debug=debug)
# Send replacement can't be done in the parent setup method because # Send replacement can't be done in the parent setup method because
# both client and server use a method from a different module. # both client and server use a method from a different module.
self.metadata_lock = Lock() self.metadata_lock = Lock()
self.raw_send = self.send self.raw_send = self.send
self.send = self.patched_send self.send = self.patched_send
self._received_message = self.received_message self._received_message = self.received_message
self.received_message = self.receive_routes self.received_message = self.receive_routes