from abc import ABC from redbot.core import commands from redbot.core.bot import Red from .utilities.config import Config class CompositeMetaClass(type(commands.Cog), type(ABC)): """ This allows the metaclass used for proper type detection to coexist with discord.py's metaclass """ pass class Mixin(ABC): """ Base class for well behaved type hint detection with composite class. Basically, to keep developers sane when not all attributes are defined in each mixin. """ def __init__(self, *_args): super().__init__() self.config: Config self.bot: Red