aboutsummaryrefslogtreecommitdiffstats
path: root/botcore/_bot.py
diff options
context:
space:
mode:
Diffstat (limited to 'botcore/_bot.py')
-rw-r--r--botcore/_bot.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/botcore/_bot.py b/botcore/_bot.py
index d740fe03..d21ed6b9 100644
--- a/botcore/_bot.py
+++ b/botcore/_bot.py
@@ -1,13 +1,13 @@
import asyncio
import socket
import types
+import warnings
from abc import abstractmethod
from contextlib import suppress
from typing import Optional
import aiohttp
import discord
-from async_rediscache import RedisSession
from discord.ext import commands
from botcore.async_stats import AsyncStatsClient
@@ -15,6 +15,11 @@ from botcore.site_api import APIClient
from botcore.utils._extensions import walk_extensions
from botcore.utils.logging import get_logger
+try:
+ from async_rediscache import RedisSession
+except ImportError:
+ RedisSession = discord.utils._MissingSentinel
+
log = get_logger()
@@ -57,7 +62,10 @@ class BotBase(commands.Bot):
self.guild_id = guild_id
self.http_session = http_session
- if redis_session:
+
+ if redis_session and RedisSession == discord.utils._MissingSentinel:
+ warnings.warn("redis_session kwarg passed, but async-rediscache not installed!")
+ elif redis_session:
self.redis_session = redis_session
self.api_client: Optional[APIClient] = None
@@ -209,6 +217,7 @@ class BotBase(commands.Bot):
and :func:`ping_services`.
"""
loop = asyncio.get_running_loop()
+
self._connect_statsd(self.statsd_url, loop)
self.stats = AsyncStatsClient(loop, "127.0.0.1")
await self.stats.create_socket()
@@ -256,7 +265,7 @@ class BotBase(commands.Bot):
if self.stats._transport:
self.stats._transport.close()
- if self.redis_session:
+ if getattr(self.redis_session, None):
await self.redis_session.close()
if self._statsd_timerhandle: