diff options
| author | Rapptz <[email protected]> | 2021-06-29 22:05:29 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2021-06-29 22:05:29 -0400 |
| commit | 6f3b8072d6d069e5df04af62e93f673b576ab4c0 (patch) | |
| tree | c567ff93eb65a4d521ea0cfbfad03bcede216fa2 | |
| parent | Rework Role.edit to not rely on previous role state (diff) | |
| download | discord.py-6f3b8072d6d069e5df04af62e93f673b576ab4c0.tar.xz discord.py-6f3b8072d6d069e5df04af62e93f673b576ab4c0.zip | |
Rework User.edit to have proper typing
| -rw-r--r-- | discord/http.py | 8 | ||||
| -rw-r--r-- | discord/user.py | 15 |
2 files changed, 10 insertions, 13 deletions
diff --git a/discord/http.py b/discord/http.py index 67389c1c..48ee88b9 100644 --- a/discord/http.py +++ b/discord/http.py @@ -735,13 +735,7 @@ class HTTPClient: return self.request(r, json=payload, reason=reason) - def edit_profile(self, username: Optional[str], avatar: Optional[bytes]) -> Response[user.User]: - payload = {} - if avatar is not None: - payload['avatar'] = avatar - if username is not None: - payload['username'] = username - + def edit_profile(self, payload: Dict[str, Any]) -> Response[user.User]: return self.request(Route('PATCH', '/users/@me'), json=payload) def change_my_nickname( diff --git a/discord/user.py b/discord/user.py index cd0cf422..4771df0a 100644 --- a/discord/user.py +++ b/discord/user.py @@ -22,10 +22,10 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from typing import Optional, TYPE_CHECKING +from typing import Any, Dict, Optional, TYPE_CHECKING import discord.abc from .flags import PublicUserFlags -from .utils import snowflake_time, _bytes_to_base64_data +from .utils import snowflake_time, _bytes_to_base64_data, MISSING from .enums import DefaultAvatar from .colour import Colour from .asset import Asset @@ -247,7 +247,7 @@ class ClientUser(BaseUser): self._flags = data.get('flags', 0) self.mfa_enabled = data.get('mfa_enabled', False) - async def edit(self, *, username: str = None, avatar: Optional[bytes] = None) -> None: + async def edit(self, *, username: str = MISSING, avatar: bytes = MISSING) -> None: """|coro| Edits the current profile of the client. @@ -276,11 +276,14 @@ class ClientUser(BaseUser): InvalidArgument Wrong image format passed for ``avatar``. """ + payload: Dict[str, Any] = {} + if username is not MISSING: + payload['username'] = username - if avatar is not None: - avatar = _bytes_to_base64_data(avatar) + if avatar is not MISSING: + payload['avatar'] = _bytes_to_base64_data(avatar) - data = await self._state.http.edit_profile(username=username, avatar=avatar) + data = await self._state.http.edit_profile(payload) self._update(data) |