Skip to content

Commit 1629b42

Browse files
authored
fix: filter out _extras for custom setattrs (#850)
This caused no problems, but it could in the future, so better safe than sorry.
1 parent efb8d0e commit 1629b42

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

interactions/api/models/message.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,9 @@ class EmbedImageStruct(DictSerializerMixin):
316316

317317
def __setattr__(self, key, value) -> None:
318318
super().__setattr__(key, value)
319-
if key != "_json" and (key not in self._json or value != self._json.get(key)):
319+
if key not in {"_json", "_extras"} and (
320+
key not in self._json or value != self._json.get(key)
321+
):
320322
if value is not None and value is not MISSING:
321323
self._json.update({key: value})
322324

@@ -338,7 +340,9 @@ class EmbedProvider(DictSerializerMixin):
338340

339341
def __setattr__(self, key, value) -> None:
340342
super().__setattr__(key, value)
341-
if key != "_json" and (key not in self._json or value != self._json.get(key)):
343+
if key not in {"_json", "_extras"} and (
344+
key not in self._json or value != self._json.get(key)
345+
):
342346
if value is not None and value is not MISSING:
343347
self._json.update({key: value})
344348

@@ -372,7 +376,9 @@ class EmbedAuthor(DictSerializerMixin):
372376

373377
def __setattr__(self, key, value) -> None:
374378
super().__setattr__(key, value)
375-
if key != "_json" and (key not in self._json or value != self._json.get(key)):
379+
if key not in {"_json", "_extras"} and (
380+
key not in self._json or value != self._json.get(key)
381+
):
376382
if value is not None and value is not MISSING:
377383
self._json.update({key: value})
378384

@@ -404,7 +410,9 @@ class EmbedFooter(DictSerializerMixin):
404410

405411
def __setattr__(self, key, value) -> None:
406412
super().__setattr__(key, value)
407-
if key != "_json" and (key not in self._json or value != self._json.get(key)):
413+
if key not in {"_json", "_extras"} and (
414+
key not in self._json or value != self._json.get(key)
415+
):
408416
if value is not None and value is not MISSING:
409417
self._json.update({key: value})
410418

@@ -438,7 +446,9 @@ class EmbedField(DictSerializerMixin):
438446

439447
def __setattr__(self, key, value) -> None:
440448
super().__setattr__(key, value)
441-
if key != "_json" and (key not in self._json or value != self._json.get(key)):
449+
if key not in {"_json", "_extras"} and (
450+
key not in self._json or value != self._json.get(key)
451+
):
442452
if value is not None and value is not MISSING:
443453
self._json.update({key: value})
444454

@@ -498,7 +508,8 @@ class Embed(DictSerializerMixin):
498508

499509
def __setattr__(self, key, value) -> None:
500510
super().__setattr__(key, value)
501-
if key != "_json" and (
511+
512+
if key not in {"_json", "_extras"} and (
502513
key not in self._json
503514
or (
504515
value != self._json.get(key)

interactions/client/models/component.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ class ComponentMixin(DictSerializerMixin):
2626

2727
def __setattr__(self, key, value) -> None:
2828
super().__setattr__(key, value)
29-
if key != "_json" and (key not in self._json or value != self._json.get(key)):
29+
if key not in {"_json", "_extras"} and (
30+
key not in self._json or value != self._json.get(key)
31+
):
3032
if value is not None and value is not MISSING:
3133
try:
3234
value = [val._json for val in value] if isinstance(value, list) else value._json

0 commit comments

Comments
 (0)