diff options
author | 2022-04-18 16:57:44 +0100 | |
---|---|---|
committer | 2022-04-18 16:57:44 +0100 | |
commit | 1ca68b789a9a62a46686c5704753cf4d0f29c758 (patch) | |
tree | 72617275475175d2aefc853d839483e8b43da426 | |
parent | Merge pull request #57 from python-discord/dependabot/pip/furo-2022.4.7 (diff) | |
parent | Bump version number and log change (diff) |
Merge pull request #56 from python-discord/minor-fixes-to-BotBase
Minor fixes to BotBase
-rw-r--r-- | CHANGELOG.md | 7 | ||||
-rw-r--r-- | botcore/_bot.py | 13 | ||||
-rw-r--r-- | pyproject.toml | 2 |
3 files changed, 18 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index b041bad6..3779ad32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 5.0.2 5th April 2022 +- Fix: Create a dummy `AsyncstatsdClient` before connecting to real url, in case a connection cannot be made on init. +- Fix: Move the creation of the `asyncio.Event`, `BotBase._guild_available` to within the setup hook, to avoid a deprecation notice. + +## 5.0.1 2nd April 2022 +- Fix: Move creation of BotBase's `aiohttp.AsyncResolver` to the async setup hook, to avoid deprecation notice + ## 5.0.0 2nd April 2022 - Breaking: Remove public extensions util - Feature: Add `BotBase`, a `discord.ext.commands.Bot` sub-class, which abstracts a lot of logic shared between our bots diff --git a/botcore/_bot.py b/botcore/_bot.py index 6486670d..e69b056d 100644 --- a/botcore/_bot.py +++ b/botcore/_bot.py @@ -74,7 +74,7 @@ class BotBase(commands.Bot): self.statsd_url: Optional[str] = None self._statsd_timerhandle: Optional[asyncio.TimerHandle] = None - self._guild_available = asyncio.Event() + self._guild_available: Optional[asyncio.Event] = None self.stats: Optional[AsyncStatsClient] = None @@ -89,7 +89,11 @@ class BotBase(commands.Bot): ) -> None: """Callback used to retry a connection to statsd if it should fail.""" if attempt >= 8: - log.error("Reached 8 attempts trying to reconnect AsyncStatsClient. Aborting") + log.error( + "Reached 8 attempts trying to reconnect AsyncStatsClient to %s. " + "Aborting and leaving the dummy statsd client in place.", + statsd_url, + ) return try: @@ -209,6 +213,8 @@ class BotBase(commands.Bot): """ loop = asyncio.get_running_loop() + self._guild_available = asyncio.Event() + self._resolver = aiohttp.AsyncResolver() self._connector = aiohttp.TCPConnector( resolver=self._resolver, @@ -216,8 +222,9 @@ class BotBase(commands.Bot): ) self.http.connector = self._connector - self._connect_statsd(self.statsd_url, loop) + # Create dummy stats client first, in case `statsd_url` is unreachable within `_connect_statsd()` self.stats = AsyncStatsClient(loop, "127.0.0.1") + self._connect_statsd(self.statsd_url, loop) await self.stats.create_socket() try: diff --git a/pyproject.toml b/pyproject.toml index 4561706f..76f0e667 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bot-core" -version = "5.0.1" +version = "5.0.2" description = "Bot-Core provides the core functionality and utilities for the bots of the Python Discord community." authors = ["Python Discord <[email protected]>"] license = "MIT" |