Skip to content

Commit f8f44eb

Browse files
authored
feat!: improve repr for Member, User (#862)
* fix: always make repr return a str for Member * feat!: reprs for User, Member > strs This makes the repr now use the attrs-generated one. I doubt people were relying on this feature besides for string conversion, so we should be fine. * feat: add some basic variables to the repr
1 parent 646d966 commit f8f44eb

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

interactions/api/models/member.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class Member(ClientSerializerMixin):
3535
:ivar Optional[str] communication_disabled_until?: How long until they're unmuted, if any.
3636
"""
3737

38-
user: Optional[User] = field(converter=User, default=None, add_client=True)
39-
nick: Optional[str] = field(default=None)
38+
user: Optional[User] = field(converter=User, default=None, add_client=True, repr=True)
39+
nick: Optional[str] = field(default=None, repr=True)
4040
_avatar: Optional[str] = field(default=None, discord_name="avatar")
4141
roles: List[int] = field()
4242
joined_at: datetime = field(converter=datetime.fromisoformat)
@@ -54,8 +54,8 @@ class Member(ClientSerializerMixin):
5454
) # TODO: Investigate what this is for when documented by Discord.
5555
flags: int = field() # TODO: Investigate what this is for when documented by Discord.
5656

57-
def __repr__(self) -> str:
58-
return self.name
57+
def __str__(self) -> str:
58+
return self.name or ""
5959

6060
@property
6161
def avatar(self) -> Optional[str]:

interactions/api/models/user.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ class User(ClientSerializerMixin):
3030
:ivar Optional[UserFlags] public_flags?: The user's public flags
3131
"""
3232

33-
id: Snowflake = field(converter=Snowflake)
34-
username: str = field()
35-
discriminator: str = field()
33+
id: Snowflake = field(converter=Snowflake, repr=True)
34+
username: str = field(repr=True)
35+
discriminator: str = field(repr=True)
3636
avatar: Optional[str] = field(default=None)
37-
bot: Optional[bool] = field(default=None)
37+
bot: Optional[bool] = field(default=None, repr=True)
3838
system: Optional[bool] = field(default=None)
3939
mfa_enabled: Optional[bool] = field(default=None)
4040
banner: Optional[str] = field(default=None)
@@ -48,7 +48,7 @@ class User(ClientSerializerMixin):
4848
public_flags: Optional[UserFlags] = field(converter=UserFlags, default=None)
4949
bio: Optional[str] = field(default=None)
5050

51-
def __repr__(self) -> str:
51+
def __str__(self) -> str:
5252
return self.username
5353

5454
def has_public_flag(self, flag: Union[UserFlags, int]) -> bool:

interactions/api/models/user.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class User(ClientSerializerMixin):
2424
premium_type: Optional[int]
2525
public_flags: Optional[UserFlags]
2626
bio: Optional[str]
27-
def __repr__(self) -> str: ...
27+
def __str__(self) -> str: ...
2828
def has_public_flag(self, flag: Union[UserFlags, int]) -> bool: ...
2929
@property
3030
def mention(self) -> str: ...

0 commit comments

Comments
 (0)