diff options
author | Dana Powers <dana.powers@gmail.com> | 2017-03-09 12:23:25 -0800 |
---|---|---|
committer | Dana Powers <dana.powers@gmail.com> | 2017-03-09 12:23:25 -0800 |
commit | e79377b84da82460da803c6fa32696fb335f5241 (patch) | |
tree | 0d7aaaf1b2467043fdc8b6a1cb8b103f218968b0 | |
parent | c48f5c07fde2ea6ca8d058e9a65a32b82fcebec9 (diff) | |
download | kafka-python-struct_kwargs.tar.gz |
Fix kwarg handing in Structstruct_kwargs
-rw-r--r-- | kafka/protocol/struct.py | 7 |
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 |