diff --git a/src/sagemaker/modules/train/container_drivers/common/utils.py b/src/sagemaker/modules/train/container_drivers/common/utils.py index c07aa1359a..a94416550d 100644 --- a/src/sagemaker/modules/train/container_drivers/common/utils.py +++ b/src/sagemaker/modules/train/container_drivers/common/utils.py @@ -124,8 +124,6 @@ def safe_deserialize(data: Any) -> Any: This function handles the following cases: 1. If `data` is not a string, it returns the input as-is. - 2. If `data` is a string and matches common boolean values ("true" or "false"), - it returns the corresponding boolean value (True or False). 3. If `data` is a JSON-encoded string, it attempts to deserialize it using `json.loads()`. 4. If `data` is a string but cannot be decoded as JSON, it returns the original string. @@ -134,13 +132,6 @@ def safe_deserialize(data: Any) -> Any: """ if not isinstance(data, str): return data - - lower_data = data.lower() - if lower_data in ["true"]: - return True - if lower_data in ["false"]: - return False - try: return json.loads(data) except json.JSONDecodeError: diff --git a/tests/unit/sagemaker/modules/train/container_drivers/test_utils.py b/tests/unit/sagemaker/modules/train/container_drivers/test_utils.py index beff06e8d8..c563e0607f 100644 --- a/tests/unit/sagemaker/modules/train/container_drivers/test_utils.py +++ b/tests/unit/sagemaker/modules/train/container_drivers/test_utils.py @@ -59,8 +59,14 @@ def test_safe_deserialize_not_a_string(): def test_safe_deserialize_boolean_strings(): assert safe_deserialize("true") is True assert safe_deserialize("false") is False - assert safe_deserialize("True") is True - assert safe_deserialize("False") is False + + # The below are not valid JSON booleans + assert safe_deserialize("True") == "True" + assert safe_deserialize("False") == "False" + assert safe_deserialize("TRUE") == "TRUE" + assert safe_deserialize("FALSE") == "FALSE" + assert safe_deserialize("tRuE") == "tRuE" + assert safe_deserialize("fAlSe") == "fAlSe" def test_safe_deserialize_valid_json_string():