importloggingfromloggingimportLoggerfrompathlibimportPathfromtypingimportAny,Dictfromtyping_extensionsimportoverridefrom...i18n.classesimportBotLocalefrom...utilsimportjson_readtry:fromapscheduler.schedulers.asyncioimportAsyncIOSchedulerfromapscheduler.schedulers.backgroundimportBackgroundSchedulerfromdiscordimportBotexceptImportErrorasexc:raiseImportError("You need to install libbot[pycord] in order to use this class.")fromexclogger:Logger=logging.getLogger(__name__)
[docs]classPycordBot(Bot):# TODO Write a docstring@overridedef__init__(self,*args,config:Dict[str,Any]|None=None,config_path:str|Path=Path("config.json"),locales_root:str|Path|None=None,scheduler:AsyncIOScheduler|BackgroundScheduler|None=None,**kwargs,):""" Args: *args: config: config_path: locales_root: scheduler: **kwargs: """self.config:Dict[str,Any]=configifconfigisnotNoneelsejson_read(config_path)super().__init__(debug_guilds=(self.config["bot"]["debug_guilds"]ifself.config["debug"]elseNone),owner_ids=self.config["bot"]["owners"],*args,**kwargs,)self.bot_locale:BotLocale=BotLocale(default_locale=self.config["locale"],locales_root=(Path("locale")iflocales_rootisNoneelselocales_root),)self.default_locale:str=self.bot_locale.defaultself.locales:Dict[str,Any]=self.bot_locale.localesself._=self.bot_locale._self.in_all_locales=self.bot_locale.in_all_localesself.in_every_locale=self.bot_locale.in_every_localeself.scheduler:AsyncIOScheduler|BackgroundScheduler|None=scheduler# TODO Write a docstring