From ddcda3e8ac5e88eb553b185bf0acaf53a6162949 Mon Sep 17 00:00:00 2001 From: aviruthen <91846056+aviruthen@users.noreply.github.com> Date: Thu, 26 Mar 2026 13:21:31 -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 | 19 +++++++++++++++++++ 2 files changed, 21 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..5005f7bed5 100644 --- a/sagemaker-core/tests/unit/generated/test_utils.py +++ b/sagemaker-core/tests/unit/generated/test_utils.py @@ -373,6 +373,25 @@ def test_serialize_method_nested_shape(): } + +def test_serialize_with_bytes_value_returns_bytes(): + result = serialize({'body': b'1'}) + assert result == {'body': b'1'} + + +def test_serialize_with_bytes_in_list(): + result = serialize([b'hello', b'world']) + assert result == [b'hello', b'world'] + + +def test_is_not_primitive_with_bytes_returns_false(): + assert is_not_primitive(b'test') is False + + +def test_is_primitive_class_with_bytes_returns_true(): + assert is_primitive_class(bytes) is True + + class TestUnassignedBehavior: """Test Unassigned class methods for proper behavior. From e871aa831cead8d1a0187caf0a0bfdaac66bbaad Mon Sep 17 00:00:00 2001 From: aviruthen <91846056+aviruthen@users.noreply.github.com> Date: Thu, 26 Mar 2026 13:25:35 -0400 Subject: [PATCH 2/2] fix: address review comments (iteration #1) --- .../tests/unit/generated/test_utils.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sagemaker-core/tests/unit/generated/test_utils.py b/sagemaker-core/tests/unit/generated/test_utils.py index 5005f7bed5..67808c9b02 100644 --- a/sagemaker-core/tests/unit/generated/test_utils.py +++ b/sagemaker-core/tests/unit/generated/test_utils.py @@ -373,22 +373,21 @@ def test_serialize_method_nested_shape(): } +def test_serialize_bytes_returns_bytes_as_is(): + result = serialize(b'1') + assert result == b'1' -def test_serialize_with_bytes_value_returns_bytes(): + +def test_serialize_dict_with_bytes_value(): result = serialize({'body': b'1'}) assert result == {'body': b'1'} -def test_serialize_with_bytes_in_list(): - result = serialize([b'hello', b'world']) - assert result == [b'hello', b'world'] - - -def test_is_not_primitive_with_bytes_returns_false(): - assert is_not_primitive(b'test') is False +def test_is_not_primitive_with_bytes(): + assert is_not_primitive(b'hello') 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