Fix when using Task.set_parameters() dict parameters are not dumped as JSON, causing the SDK to load them incorrectly

This commit is contained in:
allegroai 2023-05-11 16:02:50 +03:00
parent e40b37ef53
commit 961a41231e

View File

@ -1158,19 +1158,6 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin):
str_value = str(value)
if isinstance(value, (tuple, list, dict)):
if 'None' in re.split(r'[ ,\[\]{}()]', str_value):
# If we have None in the string we have to use json to replace it with null,
# otherwise we end up with None as string when running remotely
try:
str_json = json.dumps(value)
# verify we actually have a null in the string, otherwise prefer the str cast
# This is because we prefer to have \' as in str and not \" used in json
if 'null' in re.split(r'[ ,\[\]{}()]', str_json):
return str_json
except TypeError:
# if we somehow failed to json serialize, revert to previous std casting
pass
elif any('\\' in str(v) for v in value):
try:
str_json = json.dumps(value)
return str_json