Skip to content

Restrict Pylint to just no-member, avoid duplicating Ruff - #16

Merged
LevonBecker merged 1 commit into
mainfrom
restrict_pylint_to_no_member_levonbecker
Jul 30, 2026
Merged

Restrict Pylint to just no-member, avoid duplicating Ruff#16
LevonBecker merged 1 commit into
mainfrom
restrict_pylint_to_no_member_levonbecker

Conversation

@LevonBecker

Copy link
Copy Markdown
Owner

Summary

Ruff is purely AST-based and can never catch attribute/method access that doesn't exist on a value's real type (Pylint's no-member, E1101) — that requires astroid's type-inference machinery, which Pylint alone provides. Everything else Pylint could flag duplicates Ruff, so this scopes Pylint down to just the one check that matters and lets Ruff own the rest.

Changes

  • pyproject.toml: replaced the long [tool.pylint.messages_control] disable list with disable = ["all"] / enable = ["no-member"]
  • .github/instructions/python.instructions.md: clarified Pylint's role now that it's scoped to just no-member

Measured on a small repo: restricting to just no-member cut Pylint's runtime from 2.37s to 1.66s (~30% faster) — real but modest, since the type-inference machinery no-member needs is the dominant cost either way, not the number of enabled checkers.

Pylint's astroid-based type inference is the only thing that catches
attribute/method access that doesn't exist on a value's real type
(no-member) - Ruff is purely AST-based and can't do this. Everything
else Pylint could flag overlaps with Ruff and just adds noise plus
runtime cost (measured ~30% faster on a small repo restricted to just
this rule, since the inference machinery itself is the dominant cost
either way).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@LevonBecker LevonBecker self-assigned this Jul 30, 2026
@LevonBecker
LevonBecker merged commit e1e709a into main Jul 30, 2026
6 checks passed
@LevonBecker
LevonBecker deleted the restrict_pylint_to_no_member_levonbecker branch July 30, 2026 06:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant