From 72f8b5020ad2d446fa02be1dba6b779f8ffff5df Mon Sep 17 00:00:00 2001 From: Astrea49 <25420078+Astrea49@users.noreply.github.com> Date: Sun, 12 Jun 2022 15:59:55 -0400 Subject: [PATCH] fix: filter out _extras for custom setattrs This caused no problems, but it could in the future, so better safe than sorry. --- interactions/api/models/message.py | 23 +++++++++++++++++------ interactions/client/models/component.py | 4 +++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/interactions/api/models/message.py b/interactions/api/models/message.py index c0cc1fa03..bbfb314ce 100644 --- a/interactions/api/models/message.py +++ b/interactions/api/models/message.py @@ -286,7 +286,9 @@ class EmbedImageStruct(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and (key not in self._json or value != self._json.get(key)): + if key not in {"_json", "_extras"} and ( + key not in self._json or value != self._json.get(key) + ): if value is not None and value is not MISSING: self._json.update({key: value}) @@ -308,7 +310,9 @@ class EmbedProvider(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and (key not in self._json or value != self._json.get(key)): + if key not in {"_json", "_extras"} and ( + key not in self._json or value != self._json.get(key) + ): if value is not None and value is not MISSING: self._json.update({key: value}) @@ -342,7 +346,9 @@ class EmbedAuthor(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and (key not in self._json or value != self._json.get(key)): + if key not in {"_json", "_extras"} and ( + key not in self._json or value != self._json.get(key) + ): if value is not None and value is not MISSING: self._json.update({key: value}) @@ -374,7 +380,9 @@ class EmbedFooter(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and (key not in self._json or value != self._json.get(key)): + if key not in {"_json", "_extras"} and ( + key not in self._json or value != self._json.get(key) + ): if value is not None and value is not MISSING: self._json.update({key: value}) @@ -408,7 +416,9 @@ class EmbedField(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and (key not in self._json or value != self._json.get(key)): + if key not in {"_json", "_extras"} and ( + key not in self._json or value != self._json.get(key) + ): if value is not None and value is not MISSING: self._json.update({key: value}) @@ -466,7 +476,8 @@ class Embed(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and ( + + if key not in {"_json", "_extras"} and ( key not in self._json or ( value != self._json.get(key) diff --git a/interactions/client/models/component.py b/interactions/client/models/component.py index d716b47bc..70ba70442 100644 --- a/interactions/client/models/component.py +++ b/interactions/client/models/component.py @@ -26,7 +26,9 @@ class ComponentMixin(DictSerializerMixin): def __setattr__(self, key, value) -> None: super().__setattr__(key, value) - if key != "_json" and (key not in self._json or value != self._json.get(key)): + if key not in {"_json", "_extras"} and ( + key not in self._json or value != self._json.get(key) + ): if value is not None and value is not MISSING: try: value = [val._json for val in value] if isinstance(value, list) else value._json