Skip to content

Commit d0efc84

Browse files
refactor: Enable repr for all models (#1026)
* refactor: Enable repr for all models * ci: correct from checks. * Feat: enable everything into the repr * set channel reprs * ci: correct from checks. * Update emoji.py * Update channel.py * Update member.py * Update guild.py * ci: correct from checks. * Update message.py * Update webhook.py * Update user.py * Update team.py * Update role.py * Update attrs_utils.py * ci: correct from checks. * Update member.py * ci: correct from checks. Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 47ed09d commit d0efc84

File tree

10 files changed

+79
-67
lines changed

10 files changed

+79
-67
lines changed

interactions/api/models/channel.py

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class ThreadMetadata(DictSerializerMixin):
7474

7575
archived: bool = field()
7676
auto_archive_duration: int = field()
77-
archive_timestamp: datetime.timestamp = field(converter=datetime.fromisoformat)
77+
archive_timestamp: datetime = field(converter=datetime.fromisoformat, repr=False)
7878
locked: bool = field()
7979
invitable: Optional[bool] = field(default=None)
8080

@@ -95,12 +95,14 @@ class ThreadMember(ClientSerializerMixin):
9595
:ivar bool muted: Whether the member is muted or not.
9696
"""
9797

98-
id: Optional[Snowflake] = field(converter=Snowflake, default=None)
98+
id: Optional[Snowflake] = field(converter=Snowflake, default=None, repr=False)
9999
user_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
100-
join_timestamp: datetime.timestamp = field(converter=datetime.fromisoformat)
101-
flags: int = field()
100+
join_timestamp: datetime = field(converter=datetime.fromisoformat, repr=False)
101+
flags: int = field(repr=False)
102102
muted: bool = field()
103-
mute_config: Optional[Any] = field(default=None) # todo explore this, it isn't in the ddev docs
103+
mute_config: Optional[Any] = field(
104+
default=None, repr=False
105+
) # todo explore this, it isn't in the ddev docs
104106

105107

106108
class AsyncHistoryIterator(DiscordPaginationIterator):
@@ -333,26 +335,30 @@ class Channel(ClientSerializerMixin, IDMixin):
333335
name: str = field(factory=str)
334336
topic: Optional[str] = field(default=None)
335337
nsfw: Optional[bool] = field(default=None)
336-
last_message_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
337-
bitrate: Optional[int] = field(default=None)
338+
last_message_id: Optional[Snowflake] = field(converter=Snowflake, default=None, repr=False)
339+
bitrate: Optional[int] = field(default=None, repr=False)
338340
user_limit: Optional[int] = field(default=None)
339341
rate_limit_per_user: Optional[int] = field(default=None)
340-
recipients: Optional[List[User]] = field(converter=convert_list(User), default=None)
341-
icon: Optional[str] = field(default=None)
342+
recipients: Optional[List[User]] = field(converter=convert_list(User), default=None, repr=False)
343+
icon: Optional[str] = field(default=None, repr=False)
342344
owner_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
343-
application_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
345+
application_id: Optional[Snowflake] = field(converter=Snowflake, default=None, repr=False)
344346
parent_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
345-
last_pin_timestamp: Optional[datetime] = field(converter=datetime.fromisoformat, default=None)
346-
rtc_region: Optional[str] = field(default=None)
347-
video_quality_mode: Optional[int] = field(default=None)
348-
message_count: Optional[int] = field(default=None)
349-
member_count: Optional[int] = field(default=None)
347+
last_pin_timestamp: Optional[datetime] = field(
348+
converter=datetime.fromisoformat, default=None, repr=False
349+
)
350+
rtc_region: Optional[str] = field(default=None, repr=False)
351+
video_quality_mode: Optional[int] = field(default=None, repr=False)
352+
message_count: Optional[int] = field(default=None, repr=False)
353+
member_count: Optional[int] = field(default=None, repr=False)
350354
thread_metadata: Optional[ThreadMetadata] = field(converter=ThreadMetadata, default=None)
351-
member: Optional[ThreadMember] = field(converter=ThreadMember, default=None, add_client=True)
355+
member: Optional[ThreadMember] = field(
356+
converter=ThreadMember, default=None, add_client=True, repr=False
357+
)
352358
default_auto_archive_duration: Optional[int] = field(default=None)
353-
permissions: Optional[str] = field(default=None)
354-
flags: Optional[int] = field(default=None)
355-
total_message_sent: Optional[int] = field(default=None)
359+
permissions: Optional[str] = field(default=None, repr=False)
360+
flags: Optional[int] = field(default=None, repr=False)
361+
total_message_sent: Optional[int] = field(default=None, repr=False)
356362

357363
def __attrs_post_init__(self): # sourcery skip: last-if-guard
358364
if self._client:

interactions/api/models/emoji.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
__all__ = ("Emoji",)
1313

1414

15-
@define()
15+
@define(repr=False)
1616
class Emoji(ClientSerializerMixin):
1717
"""
1818
A class objecting representing an emoji.
@@ -36,7 +36,7 @@ class Emoji(ClientSerializerMixin):
3636
animated: Optional[bool] = field(default=None)
3737
available: Optional[bool] = field(default=None)
3838

39-
def __str__(self):
39+
def __repr__(self):
4040
return (
4141
f"<{'a' if self.animated else ''}:{self.name}:{self.id}>"
4242
if self.id is not None

interactions/api/models/guild.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -382,24 +382,24 @@ class Guild(ClientSerializerMixin, IDMixin):
382382

383383
id: Snowflake = field(converter=Snowflake)
384384
name: str = field()
385-
icon: Optional[str] = field(default=None)
386-
icon_hash: Optional[str] = field(default=None)
387-
splash: Optional[str] = field(default=None)
388-
discovery_splash: Optional[str] = field(default=None)
385+
icon: Optional[str] = field(default=None, repr=False)
386+
icon_hash: Optional[str] = field(default=None, repr=False)
387+
splash: Optional[str] = field(default=None, repr=False)
388+
discovery_splash: Optional[str] = field(default=None, repr=False)
389389
owner: Optional[bool] = field(default=None)
390390
owner_id: Snowflake = field(converter=Snowflake, default=None)
391-
permissions: Optional[str] = field(default=None)
392-
region: Optional[str] = field(default=None) # None, we don't do Voices.
391+
permissions: Optional[str] = field(default=None, repr=False)
392+
region: Optional[str] = field(default=None, repr=False) # None, we don't do Voices.
393393
afk_channel_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
394394
afk_timeout: Optional[int] = field(default=None)
395-
widget_enabled: Optional[bool] = field(default=None)
396-
widget_channel_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
397-
verification_level: int = 0
398-
default_message_notifications: int = 0
399-
explicit_content_filter: int = 0
395+
widget_enabled: Optional[bool] = field(default=None, repr=False)
396+
widget_channel_id: Optional[Snowflake] = field(converter=Snowflake, default=None, repr=False)
397+
verification_level: int = field(default=0)
398+
default_message_notifications: int = field(default=0)
399+
explicit_content_filter: int = field(default=0)
400400
roles: List[Role] = field(converter=convert_list(Role), factory=list, add_client=True)
401401
emojis: List[Emoji] = field(converter=convert_list(Emoji), factory=list, add_client=True)
402-
mfa_level: int = 0
402+
mfa_level: int = field(default=0)
403403
application_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
404404
system_channel_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
405405
system_channel_flags: int = field(default=None)
@@ -424,16 +424,18 @@ class Guild(ClientSerializerMixin, IDMixin):
424424
max_members: Optional[int] = field(default=None)
425425
vanity_url_code: Optional[str] = field(default=None)
426426
description: Optional[str] = field(default=None)
427-
banner: Optional[str] = field(default=None)
428-
premium_tier: int = 0
429-
premium_subscription_count: Optional[int] = field(default=None)
427+
banner: Optional[str] = field(default=None, repr=False)
428+
premium_tier: int = field(default=0)
429+
premium_subscription_count: Optional[int] = field(default=None, repr=False)
430430
preferred_locale: str = field(default=None)
431431
public_updates_channel_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
432-
max_video_channel_users: Optional[int] = field(default=None)
432+
max_video_channel_users: Optional[int] = field(default=None, repr=False)
433433
approximate_member_count: Optional[int] = field(default=None)
434434
approximate_presence_count: Optional[int] = field(default=None)
435-
welcome_screen: Optional[WelcomeScreen] = field(converter=WelcomeScreen, default=None)
436-
nsfw_level: int = 0
435+
welcome_screen: Optional[WelcomeScreen] = field(
436+
converter=WelcomeScreen, default=None, repr=False
437+
)
438+
nsfw_level: int = field(default=0)
437439
stage_instances: Optional[List[StageInstance]] = field(
438440
converter=convert_list(StageInstance), default=None
439441
)

interactions/api/models/member.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,28 @@ class Member(ClientSerializerMixin, IDMixin):
4242
:ivar Optional[str] communication_disabled_until?: How long until they're unmuted, if any.
4343
"""
4444

45-
user: Optional[User] = field(converter=User, default=None, add_client=True, repr=True)
46-
nick: Optional[str] = field(default=None, repr=True)
47-
_avatar: Optional[str] = field(default=None, discord_name="avatar")
45+
user: Optional[User] = field(converter=User, default=None, add_client=True)
46+
nick: Optional[str] = field(default=None)
47+
_avatar: Optional[str] = field(default=None, discord_name="avatar", repr=False)
4848
roles: List[int] = field(converter=convert_list(int))
49-
joined_at: datetime = field(converter=datetime.fromisoformat)
50-
premium_since: Optional[datetime] = field(converter=datetime.fromisoformat, default=None)
49+
joined_at: datetime = field(converter=datetime.fromisoformat, repr=False)
50+
premium_since: Optional[datetime] = field(
51+
converter=datetime.fromisoformat, default=None, repr=False
52+
)
5153
deaf: bool = field()
5254
mute: bool = field()
53-
is_pending: Optional[bool] = field(default=None)
54-
pending: Optional[bool] = field(default=None)
55-
permissions: Optional[Permissions] = field(converter=convert_int(Permissions), default=None)
55+
is_pending: Optional[bool] = field(default=None, repr=False)
56+
pending: Optional[bool] = field(default=None, repr=False)
57+
permissions: Optional[Permissions] = field(
58+
converter=convert_int(Permissions), default=None, repr=False
59+
)
5660
communication_disabled_until: Optional[datetime.isoformat] = field(
5761
converter=datetime.fromisoformat, default=None
5862
)
5963
hoisted_role: Optional[Any] = field(
60-
default=None
64+
default=None, repr=False
6165
) # TODO: Investigate what this is for when documented by Discord.
62-
flags: int = field() # TODO: Investigate what this is for when documented by Discord.
66+
flags: int = field(repr=False) # TODO: Investigate what this is for when documented by Discord.
6367

6468
def __str__(self) -> str:
6569
return self.name or ""

interactions/api/models/message.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ class Message(ClientSerializerMixin, IDMixin):
802802
reactions: Optional[List[ReactionObject]] = field(
803803
converter=convert_list(ReactionObject), default=None
804804
)
805-
nonce: Optional[Union[int, str]] = field(default=None)
805+
nonce: Optional[Union[int, str]] = field(default=None, repr=False)
806806
pinned: bool = field(default=None)
807807
webhook_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
808808
type: MessageType = field(converter=MessageType, default=None)
@@ -813,7 +813,7 @@ class Message(ClientSerializerMixin, IDMixin):
813813
flags: int = field(default=None)
814814
referenced_message: Optional[MessageReference] = field(converter=MessageReference, default=None)
815815
interaction: Optional[MessageInteraction] = field(
816-
converter=MessageInteraction, default=None, add_client=True
816+
converter=MessageInteraction, default=None, add_client=True, repr=False
817817
)
818818
thread: Optional[Channel] = field(converter=Channel, default=None, add_client=True)
819819

@@ -824,7 +824,7 @@ class Message(ClientSerializerMixin, IDMixin):
824824
stickers: Optional[List[Sticker]] = field(
825825
converter=convert_list(Sticker), default=None
826826
) # deprecated
827-
position: Optional[int] = field(default=None)
827+
position: Optional[int] = field(default=None, repr=False)
828828

829829
def __attrs_post_init__(self):
830830
if self.member:

interactions/api/models/role.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class Role(ClientSerializerMixin, IDMixin):
5353
name: str = field()
5454
color: int = field()
5555
hoist: bool = field()
56-
icon: Optional[str] = field(default=None)
56+
icon: Optional[str] = field(default=None, repr=False)
5757
unicode_emoji: Optional[str] = field(default=None)
5858
position: int = field()
5959
permissions: str = field()

interactions/api/models/team.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class Application(ClientSerializerMixin, IDMixin):
8282

8383
id: Snowflake = field(converter=Snowflake)
8484
name: str = field()
85-
icon: Optional[str] = field(default=None)
85+
icon: Optional[str] = field(default=None, repr=False)
8686
description: str = field()
8787
rpc_origins: Optional[List[str]] = field(default=None)
8888
bot_public: bool = field()
@@ -96,7 +96,7 @@ class Application(ClientSerializerMixin, IDMixin):
9696
guild_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
9797
primary_sku_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
9898
slug: Optional[str] = field(default=None)
99-
cover_image: Optional[str] = field(default=None)
99+
cover_image: Optional[str] = field(default=None, repr=False)
100100
flags: Optional[AppFlags] = field(converter=AppFlags, default=None)
101101
type: Optional[Any] = field(default=None)
102102
hook: Optional[Any] = field(default=None)

interactions/api/models/user.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ class User(ClientSerializerMixin, IDMixin):
3333
:ivar Optional[UserFlags] public_flags?: The user's public flags
3434
"""
3535

36-
id: Snowflake = field(converter=Snowflake, repr=True)
36+
id: Snowflake = field(converter=Snowflake)
3737
username: str = field(repr=True)
3838
discriminator: str = field(repr=True)
39-
avatar: Optional[str] = field(default=None)
40-
bot: Optional[bool] = field(default=None, repr=True)
41-
system: Optional[bool] = field(default=None)
39+
avatar: Optional[str] = field(default=None, repr=False)
40+
bot: Optional[bool] = field(default=None)
41+
system: Optional[bool] = field(default=None, repr=False)
4242
mfa_enabled: Optional[bool] = field(default=None)
43-
banner: Optional[str] = field(default=None)
44-
accent_color: Optional[int] = field(default=None)
45-
banner_color: Optional[str] = field(default=None)
43+
banner: Optional[str] = field(default=None, repr=False)
44+
accent_color: Optional[int] = field(default=None, repr=False)
45+
banner_color: Optional[str] = field(default=None, repr=False)
4646
locale: Optional[str] = field(default=None)
4747
verified: Optional[bool] = field(default=None)
4848
email: Optional[str] = field(default=None)
49-
flags: Optional[UserFlags] = field(converter=UserFlags, default=None)
50-
premium_type: Optional[int] = field(default=None)
51-
public_flags: Optional[UserFlags] = field(converter=UserFlags, default=None)
49+
flags: Optional[UserFlags] = field(converter=UserFlags, default=None, repr=False)
50+
premium_type: Optional[int] = field(default=None, repr=False)
51+
public_flags: Optional[UserFlags] = field(converter=UserFlags, default=None, repr=False)
5252
bio: Optional[str] = field(default=None)
5353

5454
def __str__(self) -> str:

interactions/api/models/webhook.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class Webhook(ClientSerializerMixin, IDMixin):
4949
channel_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
5050
user: Optional[User] = field(converter=User, default=None, add_client=True)
5151
name: str = field()
52-
avatar: str = field()
52+
avatar: str = field(repr=False)
5353
token: Optional[str] = field(default=None)
5454
application_id: Snowflake = field(converter=Snowflake)
5555
source_guild: Optional[Any] = field(default=None)

interactions/utils/attrs_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def define(**kwargs):
222222
def field(
223223
converter=None,
224224
default=attrs.NOTHING,
225-
repr=False,
225+
repr=True,
226226
add_client: bool = False,
227227
discord_name: str = None,
228228
**kwargs,

0 commit comments

Comments
 (0)