aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2021-06-29 22:05:29 -0400
committerRapptz <[email protected]>2021-06-29 22:05:29 -0400
commit6f3b8072d6d069e5df04af62e93f673b576ab4c0 (patch)
treec567ff93eb65a4d521ea0cfbfad03bcede216fa2
parentRework Role.edit to not rely on previous role state (diff)
downloaddiscord.py-6f3b8072d6d069e5df04af62e93f673b576ab4c0.tar.xz
discord.py-6f3b8072d6d069e5df04af62e93f673b576ab4c0.zip
Rework User.edit to have proper typing
-rw-r--r--discord/http.py8
-rw-r--r--discord/user.py15
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)