From 209515bf9dcdd9e03bc286035641af3ae72fcbf9 Mon Sep 17 00:00:00 2001 From: Tyler Lubeck Date: Thu, 6 Feb 2020 12:27:09 -0800 Subject: Implement methods to convert a Struct object to a pythonic object (#1951) Implement methods to convert a Struct object to a pythonic object --- kafka/protocol/struct.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'kafka/protocol/struct.py') diff --git a/kafka/protocol/struct.py b/kafka/protocol/struct.py index 693e2a2..e9da6e6 100644 --- a/kafka/protocol/struct.py +++ b/kafka/protocol/struct.py @@ -30,6 +30,7 @@ class Struct(AbstractType): # causes instances to "leak" to garbage self.encode = WeakMethod(self._encode_self) + @classmethod def encode(cls, item): # pylint: disable=E0202 bits = [] @@ -48,6 +49,11 @@ class Struct(AbstractType): data = BytesIO(data) return cls(*[field.decode(data) for field in cls.SCHEMA.fields]) + def get_item(self, name): + if name not in self.SCHEMA.names: + raise KeyError("%s is not in the schema" % name) + return self.__dict__[name] + def __repr__(self): key_vals = [] for name, field in zip(self.SCHEMA.names, self.SCHEMA.fields): -- cgit v1.2.1