Providing a single apostrophe-like character behind `!help` raises warning
Issuing an help command like `!help '` (a single single quote character as the help query) results in the following warning:

```py
2020-06-02 21:52:38 | root | WARNING | Applied processor reduces input query to empty string, all comparisons will have score 0. [Query: ''']
```

The same goes for at least  the queries:

```
[Query: '´']
[Query: '"']
[Query: '`']
```

The warning message hints at that such a "query" will be reduces to an empty string and, in turn, to a comparison score of `0`. The latter suggests that this warning is probably given by something in our fuzzy matching procedure. (But I haven't taken steps to confirm this yet.)

I think the best solution is to just show the normal help embed for such queries, but what the most robust way to do this is needs to be determined by the one who takes on this issue.

Sentry Issue: [BOT-5W](https://sentry.io/organizations/python-discord/issues/1705336367/?referrer=github_integration)
diff --git a/bot/cogs/help.py b/bot/cogs/help.py
index 70e62d59..3d1d6fd1 100644
--- a/bot/cogs/help.py
+++ b/bot/cogs/help.py
@@ -8,6 +8,7 @@ from typing import List, Union
 from discord import Colour, Embed, Member, Message, NotFound, Reaction, User
 from discord.ext.commands import Bot, Cog, Command, Context, Group, HelpCommand
 from fuzzywuzzy import fuzz, process
+from fuzzywuzzy.utils import full_process
 
 from bot import constants
 from bot.constants import Channels, Emojis, STAFF_ROLES
@@ -145,7 +146,13 @@ class CustomHelpCommand(HelpCommand):
         Will return an instance of the `HelpQueryNotFound` exception with the error message and possible matches.
         """
         choices = await self.get_all_help_choices()
-        result = process.extractBests(string, choices, scorer=fuzz.ratio, score_cutoff=60)
+
+        # Run fuzzywuzzy's processor beforehand, and avoid matching if processed string is empty
+        # This avoids fuzzywuzzy from raising a warning on inputs with only non-alphanumeric characters
+        if (processed := full_process(string)):
+            result = process.extractBests(processed, choices, scorer=fuzz.ratio, score_cutoff=60, processor=None)
+        else:
+            result = []
 
         return HelpQueryNotFound(f'Query "{string}" not found.', dict(result))
 
['bot/cogs/help.py']