From 3a0a8e1ee4c39655ba12900eb6bd6f7901262239 Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Wed, 9 Dec 2015 10:14:10 -0800 Subject: Handle special __init__ signature in Message decode() --- kafka/protocol/message.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'kafka') diff --git a/kafka/protocol/message.py b/kafka/protocol/message.py index 8f32749..501ce47 100644 --- a/kafka/protocol/message.py +++ b/kafka/protocol/message.py @@ -31,6 +31,14 @@ class Message(Struct): self.crc = crc32(message[4:]) return self.SCHEMA.fields[0].encode(self.crc) + message[4:] + @classmethod + def decode(cls, data): + if isinstance(data, bytes): + data = BytesIO(data) + fields = [field.decode(data) for field in cls.SCHEMA.fields] + return cls(fields[4], key=fields[3], + magic=fields[1], attributes=fields[2], crc=fields[0]) + class MessageSet(AbstractType): ITEM = Schema( -- cgit v1.2.1