Source code for pylav.type_hints.bot

from __future__ import annotations

from typing import TYPE_CHECKING, Any, TypeVar, Union

import discord

if TYPE_CHECKING:
    from discord.ext.commands import AutoShardedBot, Cog, CommandError, Context

    from pylav.core.client import Client
    from pylav.core.context import PyLavContext

    try:
        from redbot.core.bot import Red
        from redbot.core.bot import Red as BotClient
        from redbot.core.commands import Cog as RedCog
        from redbot.core.commands import Context as ClientContext
    except ImportError:
        BotClient = Red = AutoShardedBot
        RedCog = Cog
        ClientContext = Context


else:
    from discord.ext.commands import Cog, CommandError

    try:
        from redbot.core.bot import Red as BotClient
        from redbot.core.commands import Cog as RedCog
    except ImportError:
        from discord.ext.commands import AutoShardedBot as BotClient

        RedCog = Cog

from discord import app_commands


[docs] class BotClientWithLavalinkType(BotClient): _pylav_client: Client lavalink: Client pylav: Client
[docs] async def get_context( self, message: discord.abc.Message | DISCORD_INTERACTION_TYPE | PyLavContext, *, cls: type[PyLavContext] = None ) -> PyLavContext[Any]: ...
[docs] class DISCORD_INTERACTION_TYPE_BASE(discord.Interaction): client: BotClientWithLavalinkType response: discord.InteractionResponse followup: discord.Webhook command: app_commands.Command[Any, ..., Any] | app_commands.ContextMenu | None channel: discord.interactions.InteractionChannel | None
[docs] class DISCORD_COG_TYPE_MIXIN(RedCog): __version__: str bot: DISCORD_BOT_TYPE lavalink: Client pylav: Client
DISCORD_BOT_TYPE = TypeVar("DISCORD_BOT_TYPE", bound=BotClientWithLavalinkType, covariant=True) DISCORD_CONTEXT_TYPE = TypeVar("DISCORD_CONTEXT_TYPE", bound="PyLavContext", covariant=True) DISCORD_INTERACTION_TYPE = TypeVar( "DISCORD_INTERACTION_TYPE", bound=DISCORD_INTERACTION_TYPE_BASE | discord.Interaction, covariant=True ) DISCORD_COG_TYPE = TypeVar("DISCORD_COG_TYPE", bound=DISCORD_COG_TYPE_MIXIN, covariant=True) DISCORD_COMMAND_ERROR_TYPE = TypeVar( "DISCORD_COMMAND_ERROR_TYPE", bound=Union[CommandError, app_commands.errors.AppCommandError], covariant=True )