chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests#27355
Merged
kshitijk4poor merged 1 commit intoMay 17, 2026
Merged
Conversation
Six days after NousResearch#23937 (608 fixes) the codebase had accumulated 241 new PLR6201 violations. Same mechanical `x in (...)` → `x in {...}` fix, same zero-risk profile: set lookup is O(1) vs O(n) for tuple and the two are semantically equivalent for hashable scalar membership tests. All 241 instances fixed via `ruff check --select PLR6201 --fix --unsafe-fixes`, zero remaining. Every changed value is a hashable scalar (str/int/None/enum/signal); no risk of unhashable runtime errors. No behavior change. Test plan: - 119 files changed, +244/-244 (net zero) — exactly one-line edits - `ruff check` clean afterward - Compile checks pass on the largest touched files (cli.py, run_agent.py, gateway/run.py, gateway/platforms/discord.py, model_tools.py) - Subset broad test run on tests/gateway/ tests/hermes_cli/ tests/agent/ tests/tools/: 18187 passed, 59 pre-existing failures (verified against origin/main with the same shape — identical failure count, identical category — all xdist test-order flakes unrelated to this change) Follows the same template as PR NousResearch#23937 ([tracker: NousResearch#23972](NousResearch#23972)).
gweeteve
pushed a commit
to gweeteve/hermes-agent
that referenced
this pull request
Jun 2, 2026
NousResearch#27355) Six days after NousResearch#23937 (608 fixes) the codebase had accumulated 241 new PLR6201 violations. Same mechanical `x in (...)` → `x in {...}` fix, same zero-risk profile: set lookup is O(1) vs O(n) for tuple and the two are semantically equivalent for hashable scalar membership tests. All 241 instances fixed via `ruff check --select PLR6201 --fix --unsafe-fixes`, zero remaining. Every changed value is a hashable scalar (str/int/None/enum/signal); no risk of unhashable runtime errors. No behavior change. Test plan: - 119 files changed, +244/-244 (net zero) — exactly one-line edits - `ruff check` clean afterward - Compile checks pass on the largest touched files (cli.py, run_agent.py, gateway/run.py, gateway/platforms/discord.py, model_tools.py) - Subset broad test run on tests/gateway/ tests/hermes_cli/ tests/agent/ tests/tools/: 18187 passed, 59 pre-existing failures (verified against origin/main with the same shape — identical failure count, identical category — all xdist test-order flakes unrelated to this change) Follows the same template as PR NousResearch#23937 ([tracker: NousResearch#23972](NousResearch#23972)).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Six days after #23937 (608 fixes) the codebase had accumulated 241 new PLR6201 violations. Same mechanical
x in (...)→x in {...}fix, same zero-risk profile: set lookup is O(1) vs O(n) for tuple and the two are semantically equivalent for hashable scalar membership tests.This is the resweep cadence noted in tracker #23972 — Phase 1 mechanical auto-fixes need periodic re-runs as the codebase grows.
241 instances fixed via
ruff check --select PLR6201 --fix --unsafe-fixes, zero remaining.What changed
(...)→{...}swap on the right side of anin/not incomparisonNone, enum members,signal.SIGTERMconstants, computed.lower()resultsExamples from the diff:
Test plan
ruff checkclean after the sweep (0 PLR6201 remaining)cli.py,run_agent.py,gateway/run.py,gateway/platforms/discord.py,model_tools.py)tests/gateway/ tests/hermes_cli/ tests/agent/ tests/tools/: 18,187 passed, 59 pre-existing failuresorigin/mainwith the same test shape — identical 59 failure count, identical category. All 59 are xdist test-order flakes unrelated to this change (they pass when re-run in isolation; same set passes/fails on baseline). Apples-to-apples diff: 2 different transcription tests flaked on the PR branch while 2 different approval/hangup tests flaked on baseline — net zero.Follows
Same template as #23937 (tracker: #23972).