From 0fce3737066f720d20387bafb73420ea441c855a Mon Sep 17 00:00:00 2001 From: aviruthen <91846056+aviruthen@users.noreply.github.com> Date: Thu, 26 Mar 2026 13:36:04 -0400 Subject: [PATCH 1/2] fix: Attempting to serialize bytes type causes error (5660) --- .../src/sagemaker/core/utils/utils.py | 4 ++-- .../tests/unit/generated/test_utils.py | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/sagemaker-core/src/sagemaker/core/utils/utils.py b/sagemaker-core/src/sagemaker/core/utils/utils.py index 8a8d90be6e..86ebf8160f 100644 --- a/sagemaker-core/src/sagemaker/core/utils/utils.py +++ b/sagemaker-core/src/sagemaker/core/utils/utils.py @@ -273,7 +273,7 @@ def pascal_to_snake(pascal_str): def is_not_primitive(obj): - return not isinstance(obj, (int, float, str, bool, datetime.datetime)) + return not isinstance(obj, (int, float, str, bool, bytes, datetime.datetime)) def is_not_str_dict(obj): @@ -285,7 +285,7 @@ def is_primitive_list(obj): def is_primitive_class(cls): - return cls in (str, int, bool, float, datetime.datetime) + return cls in (str, int, bool, float, bytes, datetime.datetime) class Unassigned: diff --git a/sagemaker-core/tests/unit/generated/test_utils.py b/sagemaker-core/tests/unit/generated/test_utils.py index 44856d17d5..00bdc1686e 100644 --- a/sagemaker-core/tests/unit/generated/test_utils.py +++ b/sagemaker-core/tests/unit/generated/test_utils.py @@ -373,6 +373,30 @@ def test_serialize_method_nested_shape(): } + +def test_serialize_with_bytes_value_returns_bytes(): + result = serialize(b'1') + assert result == b'1' + + +def test_serialize_dict_with_bytes_value_returns_dict_with_bytes(): + result = serialize({'body': b'1'}) + assert result == {'body': b'1'} + + +def test_is_not_primitive_with_bytes_returns_false(): + assert is_not_primitive(b'hello') is False + + +def test_is_primitive_class_with_bytes_returns_true(): + assert is_primitive_class(bytes) is True + + +def test_serialize_list_with_bytes_elements(): + result = serialize([b'a', b'b']) + assert result == [b'a', b'b'] + + class TestUnassignedBehavior: """Test Unassigned class methods for proper behavior. From 02f04a1203be72344b76c64e4f610c5e2c39ee4c Mon Sep 17 00:00:00 2001 From: aviruthen <91846056+aviruthen@users.noreply.github.com> Date: Thu, 26 Mar 2026 13:40:42 -0400 Subject: [PATCH 2/2] fix: address review comments (iteration #1) --- .../src/sagemaker/core/utils/utils.py | 4 ++-- .../tests/unit/generated/test_utils.py | 19 +++++-------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/sagemaker-core/src/sagemaker/core/utils/utils.py b/sagemaker-core/src/sagemaker/core/utils/utils.py index 86ebf8160f..00d741e26d 100644 --- a/sagemaker-core/src/sagemaker/core/utils/utils.py +++ b/sagemaker-core/src/sagemaker/core/utils/utils.py @@ -273,7 +273,7 @@ def pascal_to_snake(pascal_str): def is_not_primitive(obj): - return not isinstance(obj, (int, float, str, bool, bytes, datetime.datetime)) + return not isinstance(obj, (int, float, str, bool, bytes, datetime.datetime)) def is_not_str_dict(obj): @@ -285,7 +285,7 @@ def is_primitive_list(obj): def is_primitive_class(cls): - return cls in (str, int, bool, float, bytes, datetime.datetime) + return cls in (str, int, bool, float, bytes, datetime.datetime) class Unassigned: diff --git a/sagemaker-core/tests/unit/generated/test_utils.py b/sagemaker-core/tests/unit/generated/test_utils.py index 00bdc1686e..34b0d0610e 100644 --- a/sagemaker-core/tests/unit/generated/test_utils.py +++ b/sagemaker-core/tests/unit/generated/test_utils.py @@ -374,29 +374,20 @@ def test_serialize_method_nested_shape(): -def test_serialize_with_bytes_value_returns_bytes(): - result = serialize(b'1') - assert result == b'1' - - -def test_serialize_dict_with_bytes_value_returns_dict_with_bytes(): +def test_serialize_bytes_returns_bytes(): result = serialize({'body': b'1'}) assert result == {'body': b'1'} + assert serialize(b'hello') == b'hello' -def test_is_not_primitive_with_bytes_returns_false(): - assert is_not_primitive(b'hello') is False +def test_is_not_primitive_with_bytes(): + assert is_not_primitive(b'test') is False -def test_is_primitive_class_with_bytes_returns_true(): +def test_is_primitive_class_with_bytes(): assert is_primitive_class(bytes) is True -def test_serialize_list_with_bytes_elements(): - result = serialize([b'a', b'b']) - assert result == [b'a', b'b'] - - class TestUnassignedBehavior: """Test Unassigned class methods for proper behavior.