From 899f11730db5f209c03cfad20111ec131ee4c70b Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Thu, 9 Mar 2017 15:12:27 -0800 Subject: Fix kwarg handing in kafka.protocol.struct.Struct (#1025) --- kafka/protocol/struct.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'kafka/protocol/struct.py') diff --git a/kafka/protocol/struct.py b/kafka/protocol/struct.py index 4c1afcb..3288172 100644 --- a/kafka/protocol/struct.py +++ b/kafka/protocol/struct.py @@ -18,7 +18,12 @@ class Struct(AbstractType): elif len(args) > 0: raise ValueError('Args must be empty or mirror schema') else: - self.__dict__.update(kwargs) + for name in self.SCHEMA.names: + self.__dict__[name] = kwargs.pop(name, None) + if kwargs: + raise ValueError('Keyword(s) not in schema %s: %s' + % (list(self.SCHEMA.names), + ', '.join(kwargs.keys()))) # overloading encode() to support both class and instance # Without WeakMethod() this creates circular ref, which -- cgit v1.2.1