diff --git a/sagemaker-core/src/sagemaker/core/utils/utils.py b/sagemaker-core/src/sagemaker/core/utils/utils.py index 8a8d90be6e..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, 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..34b0d0610e 100644 --- a/sagemaker-core/tests/unit/generated/test_utils.py +++ b/sagemaker-core/tests/unit/generated/test_utils.py @@ -373,6 +373,21 @@ def test_serialize_method_nested_shape(): } + +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(): + assert is_not_primitive(b'test') is False + + +def test_is_primitive_class_with_bytes(): + assert is_primitive_class(bytes) is True + + class TestUnassignedBehavior: """Test Unassigned class methods for proper behavior.