Skip to content

Commit b0001f7

Browse files
fix: fix DictSerializerMixin.update sets models into json (#948)
* fix: fix putting class instance in json * ci: correct from checks. * refactor: remove datetime import Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 2929091 commit b0001f7

File tree

2 files changed

+5
-30
lines changed

2 files changed

+5
-30
lines changed

interactions/api/gateway/client.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
new_event_loop,
1313
sleep,
1414
)
15-
from datetime import datetime
1615
from sys import platform, version_info
1716
from time import perf_counter
1817
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union
@@ -477,14 +476,6 @@ def __modify_guild_cache():
477476
old_obj = self._http.cache[model].get(id)
478477

479478
if old_obj:
480-
for key, value in old_obj._json.items():
481-
if hasattr(value, "_json"):
482-
old_obj._json[key] = value._json
483-
elif isinstance(value, Snowflake):
484-
old_obj._json[key] = int(value)
485-
elif isinstance(value, datetime):
486-
old_obj._json[key] = value.isoformat()
487-
488479
before = model(**old_obj._json)
489480
old_obj.update(**obj._json)
490481

interactions/api/models/attrs_utils.py

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,24 +50,9 @@ def __init__(self, kwargs_dict: dict = None, /, **other_kwargs):
5050
if value is not None and attrib.metadata.get("add_client"):
5151
if isinstance(value, list):
5252
for item in value:
53-
if isinstance(item, dict):
54-
item["_client"] = client
55-
elif isinstance(item, ClientSerializerMixin):
56-
item._client = client
57-
53+
item["_client"] = client
5854
else:
59-
if isinstance(value, dict):
60-
value["_client"] = client
61-
elif isinstance(value, ClientSerializerMixin):
62-
value._client = client
63-
64-
# make sure json is recursively handled
65-
if isinstance(value, list):
66-
self._json[attrib_name] = [
67-
i._json if hasattr(i, "_json") else i for i in value
68-
]
69-
elif hasattr(value, "_json"):
70-
self._json[attrib_name] = value._json # type: ignore
55+
value["_client"] = client
7156

7257
passed_kwargs[attrib_name] = value
7358

@@ -110,11 +95,10 @@ def update(self, kwargs_dict: dict = None, /, **other_kwargs):
11095
if value is None:
11196
continue
11297

113-
if converter := attribs[name].converter:
114-
value = converter(value)
115-
11698
self._json[name] = value
117-
setattr(self, name, value)
99+
setattr(
100+
self, name, converter(value) if (converter := attribs[name].converter) else value
101+
)
118102

119103

120104
@attrs.define(eq=False, init=False, on_setattr=attrs.setters.NO_OP)

0 commit comments

Comments
 (0)