|
@ -24,7 +24,7 @@ DEALINGS IN THE SOFTWARE. |
|
|
|
|
|
|
|
|
from __future__ import annotations |
|
|
from __future__ import annotations |
|
|
|
|
|
|
|
|
from typing import Callable, Any, ClassVar, Dict, Iterator, Set, TYPE_CHECKING, Tuple, Optional, TypedDict |
|
|
from typing import Callable, Any, ClassVar, Dict, Iterator, Set, TYPE_CHECKING, Tuple, Optional, TypedDict, Generic, TypeVar |
|
|
from .flags import BaseFlags, flag_value, fill_with_flags, alias_flag_value |
|
|
from .flags import BaseFlags, flag_value, fill_with_flags, alias_flag_value |
|
|
|
|
|
|
|
|
__all__ = ( |
|
|
__all__ = ( |
|
@ -35,119 +35,70 @@ __all__ = ( |
|
|
if TYPE_CHECKING: |
|
|
if TYPE_CHECKING: |
|
|
from typing_extensions import Self, Unpack |
|
|
from typing_extensions import Self, Unpack |
|
|
|
|
|
|
|
|
class _PermissionsKwargs(TypedDict, total=False): |
|
|
BoolOrNoneT = TypeVar('BoolOrNoneT', bound=Optional[bool]) |
|
|
create_instant_invite: bool |
|
|
|
|
|
kick_members: bool |
|
|
class _BasePermissionsKwargs(Generic[BoolOrNoneT], TypedDict, total=False): |
|
|
ban_members: bool |
|
|
create_instant_invite: BoolOrNoneT |
|
|
administrator: bool |
|
|
kick_members: BoolOrNoneT |
|
|
manage_channels: bool |
|
|
ban_members: BoolOrNoneT |
|
|
manage_guild: bool |
|
|
administrator: BoolOrNoneT |
|
|
add_reactions: bool |
|
|
manage_channels: BoolOrNoneT |
|
|
view_audit_log: bool |
|
|
manage_guild: BoolOrNoneT |
|
|
priority_speaker: bool |
|
|
add_reactions: BoolOrNoneT |
|
|
stream: bool |
|
|
view_audit_log: BoolOrNoneT |
|
|
read_messages: bool |
|
|
priority_speaker: BoolOrNoneT |
|
|
view_channel: bool |
|
|
stream: BoolOrNoneT |
|
|
send_messages: bool |
|
|
read_messages: BoolOrNoneT |
|
|
send_tts_messages: bool |
|
|
view_channel: BoolOrNoneT |
|
|
manage_messages: bool |
|
|
send_messages: BoolOrNoneT |
|
|
embed_links: bool |
|
|
send_tts_messages: BoolOrNoneT |
|
|
attach_files: bool |
|
|
manage_messages: BoolOrNoneT |
|
|
read_message_history: bool |
|
|
embed_links: BoolOrNoneT |
|
|
mention_everyone: bool |
|
|
attach_files: BoolOrNoneT |
|
|
external_emojis: bool |
|
|
read_message_history: BoolOrNoneT |
|
|
use_external_emojis: bool |
|
|
mention_everyone: BoolOrNoneT |
|
|
view_guild_insights: bool |
|
|
external_emojis: BoolOrNoneT |
|
|
connect: bool |
|
|
use_external_emojis: BoolOrNoneT |
|
|
speak: bool |
|
|
view_guild_insights: BoolOrNoneT |
|
|
mute_members: bool |
|
|
connect: BoolOrNoneT |
|
|
deafen_members: bool |
|
|
speak: BoolOrNoneT |
|
|
move_members: bool |
|
|
mute_members: BoolOrNoneT |
|
|
use_voice_activation: bool |
|
|
deafen_members: BoolOrNoneT |
|
|
change_nickname: bool |
|
|
move_members: BoolOrNoneT |
|
|
manage_nicknames: bool |
|
|
use_voice_activation: BoolOrNoneT |
|
|
manage_roles: bool |
|
|
change_nickname: BoolOrNoneT |
|
|
manage_permissions: bool |
|
|
manage_nicknames: BoolOrNoneT |
|
|
manage_webhooks: bool |
|
|
manage_roles: BoolOrNoneT |
|
|
manage_expressions: bool |
|
|
manage_permissions: BoolOrNoneT |
|
|
manage_emojis: bool |
|
|
manage_webhooks: BoolOrNoneT |
|
|
manage_emojis_and_stickers: bool |
|
|
manage_expressions: BoolOrNoneT |
|
|
use_application_commands: bool |
|
|
manage_emojis: BoolOrNoneT |
|
|
request_to_speak: bool |
|
|
manage_emojis_and_stickers: BoolOrNoneT |
|
|
manage_events: bool |
|
|
use_application_commands: BoolOrNoneT |
|
|
manage_threads: bool |
|
|
request_to_speak: BoolOrNoneT |
|
|
create_public_threads: bool |
|
|
manage_events: BoolOrNoneT |
|
|
create_private_threads: bool |
|
|
manage_threads: BoolOrNoneT |
|
|
send_messages_in_threads: bool |
|
|
create_public_threads: BoolOrNoneT |
|
|
external_stickers: bool |
|
|
create_private_threads: BoolOrNoneT |
|
|
use_external_stickers: bool |
|
|
send_messages_in_threads: BoolOrNoneT |
|
|
use_embedded_activities: bool |
|
|
external_stickers: BoolOrNoneT |
|
|
moderate_members: bool |
|
|
use_external_stickers: BoolOrNoneT |
|
|
use_soundboard: bool |
|
|
use_embedded_activities: BoolOrNoneT |
|
|
use_external_sounds: bool |
|
|
moderate_members: BoolOrNoneT |
|
|
send_voice_messages: bool |
|
|
use_soundboard: BoolOrNoneT |
|
|
create_expressions: bool |
|
|
use_external_sounds: BoolOrNoneT |
|
|
create_events: bool |
|
|
send_voice_messages: BoolOrNoneT |
|
|
send_polls: bool |
|
|
create_expressions: BoolOrNoneT |
|
|
create_polls: bool |
|
|
create_events: BoolOrNoneT |
|
|
use_external_apps: bool |
|
|
send_polls: BoolOrNoneT |
|
|
|
|
|
create_polls: BoolOrNoneT |
|
|
class _PermissionOverwriteKwargs(_PermissionsKwargs, total=False): |
|
|
use_external_apps: BoolOrNoneT |
|
|
create_instant_invite: Optional[bool] |
|
|
|
|
|
kick_members: Optional[bool] |
|
|
class _PermissionsKwargs(_BasePermissionsKwargs[bool]): |
|
|
ban_members: Optional[bool] |
|
|
... |
|
|
administrator: Optional[bool] |
|
|
|
|
|
manage_channels: Optional[bool] |
|
|
class _PermissionOverwriteKwargs(_BasePermissionsKwargs[Optional[bool]]): |
|
|
manage_guild: Optional[bool] |
|
|
... |
|
|
add_reactions: Optional[bool] |
|
|
|
|
|
view_audit_log: Optional[bool] |
|
|
|
|
|
priority_speaker: Optional[bool] |
|
|
|
|
|
stream: Optional[bool] |
|
|
|
|
|
read_messages: Optional[bool] |
|
|
|
|
|
view_channel: Optional[bool] |
|
|
|
|
|
send_messages: Optional[bool] |
|
|
|
|
|
send_tts_messages: Optional[bool] |
|
|
|
|
|
manage_messages: Optional[bool] |
|
|
|
|
|
embed_links: Optional[bool] |
|
|
|
|
|
attach_files: Optional[bool] |
|
|
|
|
|
read_message_history: Optional[bool] |
|
|
|
|
|
mention_everyone: Optional[bool] |
|
|
|
|
|
external_emojis: Optional[bool] |
|
|
|
|
|
use_external_emojis: Optional[bool] |
|
|
|
|
|
view_guild_insights: Optional[bool] |
|
|
|
|
|
connect: Optional[bool] |
|
|
|
|
|
speak: Optional[bool] |
|
|
|
|
|
mute_members: Optional[bool] |
|
|
|
|
|
deafen_members: Optional[bool] |
|
|
|
|
|
move_members: Optional[bool] |
|
|
|
|
|
use_voice_activation: Optional[bool] |
|
|
|
|
|
change_nickname: Optional[bool] |
|
|
|
|
|
manage_nicknames: Optional[bool] |
|
|
|
|
|
manage_roles: Optional[bool] |
|
|
|
|
|
manage_permissions: Optional[bool] |
|
|
|
|
|
manage_webhooks: Optional[bool] |
|
|
|
|
|
manage_expressions: Optional[bool] |
|
|
|
|
|
manage_emojis: Optional[bool] |
|
|
|
|
|
manage_emojis_and_stickers: Optional[bool] |
|
|
|
|
|
use_application_commands: Optional[bool] |
|
|
|
|
|
request_to_speak: Optional[bool] |
|
|
|
|
|
manage_events: Optional[bool] |
|
|
|
|
|
manage_threads: Optional[bool] |
|
|
|
|
|
create_public_threads: Optional[bool] |
|
|
|
|
|
create_private_threads: Optional[bool] |
|
|
|
|
|
send_messages_in_threads: Optional[bool] |
|
|
|
|
|
external_stickers: Optional[bool] |
|
|
|
|
|
use_external_stickers: Optional[bool] |
|
|
|
|
|
use_embedded_activities: Optional[bool] |
|
|
|
|
|
moderate_members: Optional[bool] |
|
|
|
|
|
use_soundboard: Optional[bool] |
|
|
|
|
|
use_external_sounds: Optional[bool] |
|
|
|
|
|
send_voice_messages: Optional[bool] |
|
|
|
|
|
create_expressions: Optional[bool] |
|
|
|
|
|
create_events: Optional[bool] |
|
|
|
|
|
send_polls: Optional[bool] |
|
|
|
|
|
create_polls: Optional[bool] |
|
|
|
|
|
use_external_apps: Optional[bool] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# A permission alias works like a regular flag but is marked |
|
|
# A permission alias works like a regular flag but is marked |
|
|