From 5a0f2528db151cea993127b97e1e53a9d6a36965 Mon Sep 17 00:00:00 2001 From: Alessandro Genova Date: Wed, 10 Apr 2024 16:56:58 -0400 Subject: [PATCH] feat(state): allow binary values in the trame state BREAKING CHANGE: this requires the new chunking wslink --- trame_server/utils/__init__.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/trame_server/utils/__init__.py b/trame_server/utils/__init__.py index 246a1fd..5a81cb9 100644 --- a/trame_server/utils/__init__.py +++ b/trame_server/utils/__init__.py @@ -51,14 +51,18 @@ def clean_state(state): str_values = {} for key in state: value = clean_value(state[key]) - try: - str_value = json.dumps(value) + if isinstance(value, bytes): cleaned[key] = value - str_values[key] = str_value - except TypeError: - logger.error( - f"Skip state value for '{key}' since its content is not serializable" - ) + str_values[key] = value + else: + try: + str_value = json.dumps(value) + cleaned[key] = value + str_values[key] = str_value + except TypeError: + logger.error( + f"Skip state value for '{key}' since its content is not serializable" + ) return cleaned, str_values