Replaced legacy Union[] with new syntax

This commit is contained in:
2024-12-27 00:18:54 +01:00
parent 7b64f6938b
commit eed084cd91
6 changed files with 31 additions and 42 deletions

View File

@@ -1,5 +1,5 @@
import logging
from typing import Any, Union, Dict
from typing import Any, Dict
from bson import ObjectId
from discord import User, Member
@@ -12,11 +12,11 @@ logger = logging.getLogger(__name__)
class HoloUser:
def __init__(self, user: Union[User, Member, int]) -> None:
def __init__(self, user: User | Member | int) -> None:
"""Get an object that has a proper binding between Discord ID and database
### Args:
* `user` (Union[User, Member, int]): Object from which ID can be extracted
* `user` (User | Member | int): Object from which ID can be extracted
### Raises:
* `UserNotFoundError`: User with such ID does not seem to exist in database
@@ -24,17 +24,15 @@ class HoloUser:
self.id: int = user if not hasattr(user, "id") else user.id
jav_user: Union[Dict[str, Any], None] = sync_col_users.find_one(
{"user": self.id}
)
jav_user: Dict[str, Any] | None = sync_col_users.find_one({"user": self.id})
if jav_user is None:
raise UserNotFoundError(user=user, user_id=self.id)
self.db_id: ObjectId = jav_user["_id"]
self.customrole: Union[int, None] = jav_user["customrole"]
self.customchannel: Union[int, None] = jav_user["customchannel"]
self.customrole: int | None = jav_user["customrole"]
self.customchannel: int | None = jav_user["customchannel"]
self.warnings: int = self.warns()
def warns(self) -> int:
@@ -43,9 +41,7 @@ class HoloUser:
### Returns:
* `int`: Number of warnings
"""
warns: Union[Dict[str, Any], None] = sync_col_warnings.find_one(
{"user": self.id}
)
warns: Dict[str, Any] | None = sync_col_warnings.find_one({"user": self.id})
return 0 if warns is None else warns["warns"]
@@ -55,9 +51,7 @@ class HoloUser:
### Args:
* `count` (int, optional): Count of warnings to be added. Defaults to 1.
"""
warns: Union[Dict[str, Any], None] = await col_warnings.find_one(
{"user": self.id}
)
warns: Dict[str, Any] | None = await col_warnings.find_one({"user": self.id})
if warns is not None:
await col_warnings.update_one(
@@ -88,11 +82,11 @@ class HoloUser:
logger.info("Set attribute %s of user %s to %s", key, self.id, value)
@staticmethod
async def is_moderator(member: Union[User, Member]) -> bool:
async def is_moderator(member: User | Member) -> bool:
"""Check if user is moderator or council member
### Args:
* `member` (Union[User, Member]): Member object
* `member` (User | Member): Member object
### Returns:
`bool`: `True` if member is a moderator or member of council and `False` if not
@@ -100,8 +94,8 @@ class HoloUser:
if isinstance(member, User):
return False
moderator_role: Union[int, None] = await config_get("moderators", "roles")
council_role: Union[int, None] = await config_get("council", "roles")
moderator_role: int | None = await config_get("moderators", "roles")
council_role: int | None = await config_get("council", "roles")
for role in member.roles:
if role.id in (moderator_role, council_role):
@@ -110,11 +104,11 @@ class HoloUser:
return False
@staticmethod
async def is_council(member: Union[User, Member]) -> bool:
async def is_council(member: User | Member) -> bool:
"""Check if user is a member of council
### Args:
* `member` (Union[User, Member]): Member object
* `member` (User | Member): Member object
### Returns:
`bool`: `True` if member is a member of council and `False` if not