Browse Source

[commands] Add special extension function 'teardown' for clean-up.

This is to support people who want to clean up some external resource
that the extension is maintaining outside of a cog, where __unload
should be used instead.

The callable is the antipode of 'setup' and takes the same sole
parameter, the bot, after all commands, events, and cogs have been
unloaded.

Fixes #405.
pull/316/merge
Rapptz 9 years ago
parent
commit
6d88024f0f
  1. 10
      discord/ext/commands/bot.py

10
discord/ext/commands/bot.py

@ -764,6 +764,16 @@ class Bot(GroupMixin, discord.Client):
for index in reversed(remove): for index in reversed(remove):
del event_list[index] del event_list[index]
try:
func = getattr(lib, 'teardown')
except AttributeError:
pass
else:
try:
func(bot)
except:
pass
finally:
# finally remove the import.. # finally remove the import..
del lib del lib
del self.extensions[name] del self.extensions[name]

Loading…
Cancel
Save