Skip to content

Commit 7a7170f

Browse files
[suggestion-mode] Remove the option and always suggest
1 parent 537e9da commit 7a7170f

File tree

3 files changed

+16
-54
lines changed

3 files changed

+16
-54
lines changed

pylint/checkers/typecheck.py

+16-40
Original file line numberDiff line numberDiff line change
@@ -201,26 +201,6 @@ def _similar_names(
201201
return sorted(picked)
202202

203203

204-
def _missing_member_hint(
205-
owner: SuccessfulInferenceResult,
206-
attrname: str | None,
207-
distance_threshold: int,
208-
max_choices: int,
209-
) -> str:
210-
names = _similar_names(owner, attrname, distance_threshold, max_choices)
211-
if not names:
212-
# No similar name.
213-
return ""
214-
215-
names = [repr(name) for name in names]
216-
if len(names) == 1:
217-
names_hint = ", ".join(names)
218-
else:
219-
names_hint = f"one of {', '.join(names[:-1])} or {names[-1]}"
220-
221-
return f"; maybe {names_hint}?"
222-
223-
224204
MSGS: dict[str, MessageDefinitionTuple] = {
225205
"E1101": (
226206
"%s %r has no %r member%s",
@@ -988,10 +968,6 @@ def open(self) -> None:
988968
self._py310_plus = py_version >= (3, 10)
989969
self._mixin_class_rgx = self.linter.config.mixin_class_rgx
990970

991-
@cached_property
992-
def _suggestion_mode(self) -> bool:
993-
return self.linter.config.suggestion_mode # type: ignore[no-any-return]
994-
995971
@cached_property
996972
def _compiled_generated_members(self) -> tuple[Pattern[str], ...]:
997973
# do this lazily since config not fully initialized in __init__
@@ -1202,24 +1178,24 @@ def _get_nomember_msgid_hint(
12021178
node: nodes.Attribute | nodes.AssignAttr | nodes.DelAttr,
12031179
owner: SuccessfulInferenceResult,
12041180
) -> tuple[Literal["c-extension-no-member", "no-member"], str]:
1205-
suggestions_are_possible = self._suggestion_mode and isinstance(
1206-
owner, nodes.Module
1181+
if isinstance(owner, nodes.Module) and _is_c_extension(owner):
1182+
return "c-extension-no-member", ""
1183+
if not self.linter.config.missing_member_hint:
1184+
return "no-member", ""
1185+
names = _similar_names(
1186+
owner,
1187+
node.attrname,
1188+
self.linter.config.missing_member_hint_distance,
1189+
self.linter.config.missing_member_max_choices,
12071190
)
1208-
if suggestions_are_possible and _is_c_extension(owner):
1209-
msg = "c-extension-no-member"
1210-
hint = ""
1191+
if not names:
1192+
return "no-member", ""
1193+
names = [repr(name) for name in names]
1194+
if len(names) == 1:
1195+
names_hint = ", ".join(names)
12111196
else:
1212-
msg = "no-member"
1213-
if self.linter.config.missing_member_hint:
1214-
hint = _missing_member_hint(
1215-
owner,
1216-
node.attrname,
1217-
self.linter.config.missing_member_hint_distance,
1218-
self.linter.config.missing_member_max_choices,
1219-
)
1220-
else:
1221-
hint = ""
1222-
return msg, hint # type: ignore[return-value]
1197+
names_hint = f"one of {', '.join(names[:-1])} or {names[-1]}"
1198+
return "no-member", f"; maybe {names_hint}?"
12231199

12241200
@only_required_for_messages(
12251201
"assignment-from-no-return",

pylint/lint/base_options.py

-13
Original file line numberDiff line numberDiff line change
@@ -306,19 +306,6 @@ def _make_linter_options(linter: PyLinter) -> Options:
306306
),
307307
},
308308
),
309-
(
310-
"suggestion-mode",
311-
{
312-
"type": "yn",
313-
"metavar": "<y or n>",
314-
"default": True,
315-
"help": (
316-
"When enabled, pylint would attempt to guess common "
317-
"misconfiguration and emit user-friendly hints instead "
318-
"of false-positive error messages."
319-
),
320-
},
321-
),
322309
(
323310
"exit-zero",
324311
{

pylint/utils/utils.py

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040

4141
# These are types used to overload get_global_option() and refer to the options type
4242
GLOBAL_OPTION_BOOL = Literal[
43-
"suggestion-mode",
4443
"analyse-fallback-blocks",
4544
"allow-global-unused-variables",
4645
"prefer-stubs",

0 commit comments

Comments
 (0)