papi: more detailed packing error message
'struct.error: required argument is not an integer'
is quite useless itself, so let's raise an error from it at least
saying what was the thing getting packed
Type: improvement
Change-Id: Icb762fbab98446d1e1331315e6c337f789cbba95
Signed-off-by: Klement Sekera <klement.sekera@gmail.com>
diff --git a/src/vpp-api/python/vpp_papi/vpp_serializer.py b/src/vpp-api/python/vpp_papi/vpp_serializer.py
index d724cb3..707bb03 100644
--- a/src/vpp-api/python/vpp_papi/vpp_serializer.py
+++ b/src/vpp-api/python/vpp_papi/vpp_serializer.py
@@ -644,10 +644,15 @@
else:
arg = data[a]
kwarg = kwargs[a] if a in kwargs else None
- if isinstance(self.packers[i], VPPType):
- b += self.packers[i].pack(arg, kwarg)
- else:
- b += self.packers[i].pack(arg, kwargs)
+ try:
+ if isinstance(self.packers[i], VPPType):
+ b += self.packers[i].pack(arg, kwarg)
+ else:
+ b += self.packers[i].pack(arg, kwargs)
+ except Exception as e:
+ raise VPPSerializerValueError(
+ f"Exception while packing {data} for {self.name}.{a}."
+ ) from e
return bytes(b)