-
-
Notifications
You must be signed in to change notification settings - Fork 146
Expand file tree
/
Copy pathdid_you_mean.py
More file actions
28 lines (20 loc) · 729 Bytes
/
did_you_mean.py
File metadata and controls
28 lines (20 loc) · 729 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""Generating suggestions"""
from __future__ import annotations
from typing import TYPE_CHECKING
from .format_list import or_list
if TYPE_CHECKING:
from collections.abc import Sequence
__all__ = ["did_you_mean"]
MAX_LENGTH = 5
def did_you_mean(suggestions: Sequence[str], sub_message: str | None = None) -> str:
"""Given [ A, B, C ] return ' Did you mean A, B, or C?'"""
if not suggestions or not MAX_LENGTH:
return ""
message = " Did you mean "
if sub_message:
message += sub_message + " "
suggestions = suggestions[:MAX_LENGTH]
suggestion_list = or_list(
[f"'{suggestion}'" for suggestion in suggestions[:MAX_LENGTH]]
)
return message + suggestion_list + "?"