From a3852c58a78a6b974785f0764c21ed35a785b49d Mon Sep 17 00:00:00 2001 From: Tanishq Dubey Date: Sat, 26 Sep 2020 16:33:07 -0400 Subject: [PATCH 1/2] add null key check --- avrogen/core_writer.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/avrogen/core_writer.py b/avrogen/core_writer.py index f6248dd..406b9b1 100644 --- a/avrogen/core_writer.py +++ b/avrogen/core_writer.py @@ -127,7 +127,12 @@ def write_setters(record, writer, use_logical_types=False): writer.write('if set(inner_dict.keys()) - set(field_names):\n') writer.write(' err = set(inner_dict.keys()) - set(field_names)\n') - writer.write(' raise KeyError(f"Keys from provided object are not subset of object params in {type(self).__name__}: {err}")\n') + writer.write(' test_keys = []\n') + writer.write(' for e in err:\n') + writer.write(' if inner_dict[e] is None:\n') + writer.write(' test_keys.append(e)\n') + writer.write(' if test_keys:\n') + writer.write(' raise KeyError(f"Keys from provided object are not subset of object params in {type(self).__name__}: {err}")\n') for field in record.fields: f_name = field.name From e1e19032d0f586b98cd46933e68dd36f9f522c35 Mon Sep 17 00:00:00 2001 From: Tanishq Dubey Date: Sat, 26 Sep 2020 18:08:21 -0400 Subject: [PATCH 2/2] invert if statement --- avrogen/core_writer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/avrogen/core_writer.py b/avrogen/core_writer.py index 406b9b1..25df901 100644 --- a/avrogen/core_writer.py +++ b/avrogen/core_writer.py @@ -129,7 +129,7 @@ def write_setters(record, writer, use_logical_types=False): writer.write(' err = set(inner_dict.keys()) - set(field_names)\n') writer.write(' test_keys = []\n') writer.write(' for e in err:\n') - writer.write(' if inner_dict[e] is None:\n') + writer.write(' if inner_dict[e] is not None:\n') writer.write(' test_keys.append(e)\n') writer.write(' if test_keys:\n') writer.write(' raise KeyError(f"Keys from provided object are not subset of object params in {type(self).__name__}: {err}")\n')