From 8cf3c9cd04df9c96c88ee5fb3a881db62aa8abf8 Mon Sep 17 00:00:00 2001 From: Lacosst0 <68904262+Lacosst0@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:59:19 +0400 Subject: [PATCH 1/2] fix: Snowflake encoding issue when msgspec is used Signed-off-by: Lacosst0 <68904262+Lacosst0@users.noreply.github.com> --- interactions/client/utils/input_utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/interactions/client/utils/input_utils.py b/interactions/client/utils/input_utils.py index a4fc47a99..e31dd720d 100644 --- a/interactions/client/utils/input_utils.py +++ b/interactions/client/utils/input_utils.py @@ -2,6 +2,7 @@ import re import typing from enum import IntFlag +from interactions.models.discord.snowflake import Snowflake from typing import Any, Dict, Union, Optional import aiohttp # type: ignore @@ -25,9 +26,11 @@ import msgspec.json as json def enc_hook(obj: Any) -> int: - # msgspec doesnt support IntFlags + # msgspec doesnt support IntFlags or interactions.Snowflakes if isinstance(obj, IntFlag): return int(obj) + if isinstance(obj, Snowflake): + return int(obj) raise TypeError(f"Object of type {type(obj)} is not JSON serializable") json.dumps = json.Encoder(enc_hook=enc_hook).encode From 1ab87c8aee726960b21cd3e22fe23ab2424b5b85 Mon Sep 17 00:00:00 2001 From: Lacosst0 <68904262+Lacosst0@users.noreply.github.com> Date: Tue, 17 Oct 2023 09:13:31 +0400 Subject: [PATCH 2/2] Combine 2 isinstance into 1 Signed-off-by: Lacosst0 <68904262+Lacosst0@users.noreply.github.com> --- interactions/client/utils/input_utils.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/interactions/client/utils/input_utils.py b/interactions/client/utils/input_utils.py index e31dd720d..66e27fc8f 100644 --- a/interactions/client/utils/input_utils.py +++ b/interactions/client/utils/input_utils.py @@ -27,9 +27,7 @@ def enc_hook(obj: Any) -> int: # msgspec doesnt support IntFlags or interactions.Snowflakes - if isinstance(obj, IntFlag): - return int(obj) - if isinstance(obj, Snowflake): + if isinstance(obj, (IntFlag, Snowflake)): return int(obj) raise TypeError(f"Object of type {type(obj)} is not JSON serializable")