Skip to content

Commit aed6ce7

Browse files
authored
fix: various attrs-related fixes for Message (#860)
* fix: various converter fixes for Message * docs: update type docs for Message
1 parent f8f44eb commit aed6ce7

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

interactions/api/models/message.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
from datetime import datetime
22
from enum import IntEnum
3-
from typing import List, Optional, Union
4-
5-
from attrs import converters
3+
from typing import TYPE_CHECKING, List, Optional, Union
64

75
from ..error import LibraryException
86
from .attrs_utils import (
@@ -22,6 +20,9 @@
2220
from .team import Application
2321
from .user import User
2422

23+
if TYPE_CHECKING:
24+
from ...client.models.component import Component
25+
2526
__all__ = (
2627
"MessageType",
2728
"Message",
@@ -820,7 +821,7 @@ class Message(ClientSerializerMixin):
820821
:ivar Union[int, str] nonce: Used for message validation
821822
:ivar bool pinned: Whether this message is pinned.
822823
:ivar Optional[Snowflake] webhook_id?: Webhook ID if the message is generated by a webhook.
823-
:ivar int type: Type of message
824+
:ivar MessageType type: Type of message
824825
:ivar Optional[MessageActivity] activity?: Message activity object that's sent by Rich Presence
825826
:ivar Optional[Application] application?: Application object that's sent by Rich Presence
826827
:ivar Optional[MessageReference] message_reference?: Data showing the source of a message (crosspost, channel follow, add, pin, or replied message)
@@ -837,9 +838,7 @@ class Message(ClientSerializerMixin):
837838
channel_id: Snowflake = field(converter=Snowflake)
838839
guild_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
839840
author: User = field(converter=User, add_client=True, default=None)
840-
member: Optional[Member] = field(
841-
converter=converters.optional(Member), default=None, add_client=True
842-
)
841+
member: Optional[Member] = field(converter=Member, default=None, add_client=True)
843842
content: str = field(default=None)
844843
timestamp: datetime = field(converter=datetime.fromisoformat, default=None)
845844
edited_timestamp: Optional[datetime] = field(converter=datetime.fromisoformat, default=None)
@@ -861,7 +860,7 @@ class Message(ClientSerializerMixin):
861860
nonce: Optional[Union[int, str]] = field(default=None)
862861
pinned: bool = field(default=None)
863862
webhook_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
864-
type: int = field(default=None)
863+
type: MessageType = field(converter=MessageType, default=None)
865864
activity: Optional[MessageActivity] = field(converter=MessageActivity, default=None)
866865
application: Optional[Application] = field(converter=Application, default=None)
867866
application_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
@@ -874,7 +873,9 @@ class Message(ClientSerializerMixin):
874873
thread: Optional[Channel] = field(converter=Channel, default=None, add_client=True)
875874

876875
components: Optional[Union["Component", List["Component"]]] = field(default=None) # noqa: F821
877-
sticker_items: Optional[List[PartialSticker]] = field(converter=convert_list, default=None)
876+
sticker_items: Optional[List[PartialSticker]] = field(
877+
converter=convert_list(PartialSticker), default=None
878+
)
878879
stickers: Optional[List[Sticker]] = field(
879880
converter=convert_list(Sticker), default=None
880881
) # deprecated

interactions/api/models/message.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ class Message(ClientSerializerMixin):
241241
nonce: Optional[Union[int, str]]
242242
pinned: bool
243243
webhook_id: Optional[Snowflake]
244-
type: int
244+
type: MessageType
245245
activity: Optional[MessageActivity]
246246
application: Optional[Application]
247247
application_id: Optional[Snowflake]

0 commit comments

Comments
 (0)