Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _save(self, obj):
tp = type(obj)
try:
dispatch = self._dispatch[tp]
except KeyError:
methodname = "save_" + tp.__name__
meth = getattr(self.__class__, methodname, None)
if meth is None:
raise DumpError("can't serialize {}".format(tp))
dispatch = self._dispatch[tp] = meth
dispatch(self, obj)
def _write_int4(self, i, error="int must be less than %i" % (FOUR_BYTE_INT_MAX,)):
if i > FOUR_BYTE_INT_MAX:
raise DumpError(error)
self._write(struct.pack("!i", i))
def _write_unicode_string(self, s):
try:
as_bytes = s.encode("utf-8")
except UnicodeEncodeError:
raise DumpError("strings must be utf-8 encodable")
self._write_byte_sequence(as_bytes)
def serialize_warning_message(warning_message):
if isinstance(warning_message.message, Warning):
message_module = type(warning_message.message).__module__
message_class_name = type(warning_message.message).__name__
message_str = str(warning_message.message)
# check now if we can serialize the warning arguments (#349)
# if not, we will just use the exception message on the master node
try:
dumps(warning_message.message.args)
except DumpError:
message_args = None
else:
message_args = warning_message.message.args
else:
message_str = warning_message.message
message_module = None
message_class_name = None
message_args = None
if warning_message.category:
category_module = warning_message.category.__module__
category_class_name = warning_message.category.__name__
else:
category_module = None
category_class_name = None
result = {