Autocomplete (+ Fediverse): configure Black.

This commit is contained in:
Valentin Lorentz 2020-08-29 18:44:32 +02:00
parent 7710edb5fe
commit 6f5d8c3011
3 changed files with 27 additions and 7 deletions

View File

@ -56,7 +56,9 @@ def _commonPrefix(L):
def _getAutocompleteResponse(irc, msg, payload): def _getAutocompleteResponse(irc, msg, payload):
"""Returns the value of the +draft/autocomplete-response tag for the given """Returns the value of the +draft/autocomplete-response tag for the given
+draft/autocomplete-request payload.""" +draft/autocomplete-request payload."""
tokens = callbacks.tokenize(payload, channel=msg.channel, network=irc.network) tokens = callbacks.tokenize(
payload, channel=msg.channel, network=irc.network
)
normalized_payload = " ".join(tokens) normalized_payload = " ".join(tokens)
candidate_commands = _getCandidates(irc, normalized_payload) candidate_commands = _getCandidates(irc, normalized_payload)
@ -81,12 +83,16 @@ def _getAutocompleteResponse(irc, msg, payload):
candidate[len(common_prefix)] for candidate in tokenized_candidates candidate[len(common_prefix)] for candidate in tokenized_candidates
} }
commands = [" ".join(common_prefix + [word]) for word in words_after_prefix] commands = [
" ".join(common_prefix + [word]) for word in words_after_prefix
]
# strip what the user already typed # strip what the user already typed
assert all(command.startswith(normalized_payload) for command in commands) assert all(command.startswith(normalized_payload) for command in commands)
normalized_payload_length = len(normalized_payload) normalized_payload_length = len(normalized_payload)
response_items = [command[normalized_payload_length:] for command in commands] response_items = [
command[normalized_payload_length:] for command in commands
]
return "\t".join(sorted(response_items)) return "\t".join(sorted(response_items))
@ -103,7 +109,9 @@ def _getCandidates(irc, normalized_payload):
cb_commands += [plugin_name + " " + command for command in cb_commands] cb_commands += [plugin_name + " " + command for command in cb_commands]
candidates |= { candidates |= {
command for command in cb_commands if command.startswith(normalized_payload) command
for command in cb_commands
if command.startswith(normalized_payload)
} }
return candidates return candidates

View File

@ -41,7 +41,10 @@ class AutocompleteTestCase(PluginTestCase):
self.irc.feedMsg( self.irc.feedMsg(
ircmsgs.IrcMsg( ircmsgs.IrcMsg(
prefix="foo!bar@baz", prefix="foo!bar@baz",
server_tags={"msgid": "1234", "+draft/autocomplete-request": request}, server_tags={
"msgid": "1234",
"+draft/autocomplete-request": request,
},
command="TAGMSG", command="TAGMSG",
args=[self.nick], args=[self.nick],
) )
@ -86,7 +89,9 @@ class AutocompleteTestCase(PluginTestCase):
with conf.supybot.protocols.irc.experimentalExtensions.context(True): with conf.supybot.protocols.irc.experimentalExtensions.context(True):
with conf.supybot.plugins.Autocomplete.enabled.context(True): with conf.supybot.plugins.Autocomplete.enabled.context(True):
self._assertAutocompleteResponse("misc t", "ell") self._assertAutocompleteResponse("misc t", "ell")
self._assertAutocompleteResponse("misc c", "learmores\tompletenick") self._assertAutocompleteResponse(
"misc c", "learmores\tompletenick"
)
def testSinglePluginName(self): def testSinglePluginName(self):
with conf.supybot.protocols.irc.experimentalExtensions.context(True): with conf.supybot.protocols.irc.experimentalExtensions.context(True):
@ -119,7 +124,10 @@ class AutocompleteChannelTestCase(ChannelPluginTestCase):
self.irc.feedMsg( self.irc.feedMsg(
ircmsgs.IrcMsg( ircmsgs.IrcMsg(
prefix="foo!bar@baz", prefix="foo!bar@baz",
server_tags={"msgid": "1234", "+draft/autocomplete-request": request}, server_tags={
"msgid": "1234",
"+draft/autocomplete-request": request,
},
command="TAGMSG", command="TAGMSG",
args=[self.channel], args=[self.channel],
) )

4
pyproject.toml Normal file
View File

@ -0,0 +1,4 @@
[tool.black]
line-length = 79
include = 'plugins/(Autocomplete|Fediverse)/.*\.pyi?$'