summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2017-03-09 12:23:25 -0800
committerDana Powers <dana.powers@gmail.com>2017-03-09 12:23:25 -0800
commite79377b84da82460da803c6fa32696fb335f5241 (patch)
tree0d7aaaf1b2467043fdc8b6a1cb8b103f218968b0
parentc48f5c07fde2ea6ca8d058e9a65a32b82fcebec9 (diff)
downloadkafka-python-e79377b84da82460da803c6fa32696fb335f5241.tar.gz
Fix kwarg handing in Structstruct_kwargs
-rw-r--r--kafka/protocol/struct.py7
1 files changed, 6 insertions, 1 deletions
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