[commands] Correct command removing during cog injecting #5804
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
bot.remove_command
takes a string, however the command object was attempting to be passed during the handling of errors when injecting duringbot.add_cog
.Since commands are removed during loading of extensions this doesn't actually cause an issue in most use cases, since extensions and cogs typically go hand in hand. However in the specific use case of using case insensitive commands, when it tries to pop the name it tries to run casefold, expecting the key to be a string. This fails on this situation, and you end up with an unhelpful error message of
AttributeError: 'Command' object has no attribute 'casefold'
. This PR fixes thatChecklist