Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(typing): update misc payload types #996

Merged
merged 6 commits into from Apr 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog/996.bugfix.rst
@@ -0,0 +1 @@
Improve :class:`GuildSticker` deserialization, fix :meth:`GuildSticker.edit` parameter types to match documentation.
1 change: 1 addition & 0 deletions changelog/996.misc.rst
@@ -0,0 +1 @@
Update typings of :attr:`Message.activity` and internal :class:`Team` payloads to match API documentation.
6 changes: 3 additions & 3 deletions disnake/sticker.py
Expand Up @@ -263,7 +263,7 @@ def __init__(self, *, state: ConnectionState, data: StickerPayload) -> None:
def _from_data(self, data: StickerPayload) -> None:
self.id: int = int(data["id"])
self.name: str = data["name"]
self.description: str = data["description"]
self.description: str = data.get("description") or ""
self.format: StickerFormatType = try_enum(StickerFormatType, data["format_type"])

def __repr__(self) -> str:
Expand Down Expand Up @@ -402,7 +402,7 @@ class GuildSticker(Sticker):

def _from_data(self, data: GuildStickerPayload) -> None:
super()._from_data(data)
self.available: bool = data["available"]
self.available: bool = data.get("available", True)
self.guild_id: int = int(data["guild_id"])
user = data.get("user")
self.user: Optional[User] = self._state.store_user(user) if user else None
Expand All @@ -425,7 +425,7 @@ async def edit(
self,
*,
name: str = MISSING,
description: str = MISSING,
description: Optional[str] = MISSING,
emoji: str = MISSING,
reason: Optional[str] = None,
) -> GuildSticker:
Expand Down
2 changes: 1 addition & 1 deletion disnake/types/message.py
Expand Up @@ -49,7 +49,7 @@ class Attachment(TypedDict):

class MessageActivity(TypedDict):
type: MessageActivityType
party_id: str
party_id: NotRequired[str]


class MessageApplication(TypedDict):
Expand Down
8 changes: 4 additions & 4 deletions disnake/types/sticker.py
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import List, Literal, TypedDict, Union
from typing import List, Literal, Optional, TypedDict, Union

from typing_extensions import NotRequired

Expand All @@ -21,7 +21,7 @@ class StickerItem(TypedDict):
class BaseSticker(TypedDict):
id: Snowflake
name: str
description: str
description: Optional[str]
tags: str
format_type: StickerFormatType

Expand All @@ -34,7 +34,7 @@ class StandardSticker(BaseSticker):

class GuildSticker(BaseSticker):
type: Literal[2]
available: bool
available: NotRequired[bool]
guild_id: Snowflake
user: NotRequired[User]

Expand All @@ -61,7 +61,7 @@ class CreateGuildSticker(TypedDict):
class EditGuildSticker(TypedDict, total=False):
name: str
tags: str
description: str
description: Optional[str]


class ListPremiumStickerPacks(TypedDict):
Expand Down
8 changes: 5 additions & 3 deletions disnake/types/team.py
Expand Up @@ -2,22 +2,24 @@

from __future__ import annotations

from typing import List, Optional, TypedDict
from typing import List, Literal, Optional, TypedDict

from .snowflake import Snowflake
from .user import PartialUser

TeamMembershipState = Literal[1, 2]


class TeamMember(TypedDict):
user: PartialUser
membership_state: int
membership_state: TeamMembershipState
permissions: List[str]
team_id: Snowflake


class Team(TypedDict):
id: Snowflake
name: str
owner_id: Snowflake
owner_user_id: Snowflake
onerandomusername marked this conversation as resolved.
Show resolved Hide resolved
members: List[TeamMember]
icon: Optional[str]