Skip to content

Conversation

@LaBatata101
Copy link
Contributor

Summary

I also noticed that the tests for SIM911 were note being run, so I fixed that.

Fixes #18777

Test Plan

Add regression test

@github-actions
Copy link
Contributor

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+4 -0 violations, +0 -0 fixes in 3 projects; 52 projects unchanged)

apache/airflow (+1 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --no-fix --output-format concise --no-preview --select ALL

+ providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py:233:27: SIM910 [*] Use `metadata.get("next_page_token")` instead of `metadata.get("next_page_token", None)`

mlflow/mlflow (+1 -0 violations, +0 -0 fixes)

+ mlflow/pyfunc/loaders/chat_agent.py:66:25: SIM910 [*] Use `dict_input.get("custom_inputs")` instead of `dict_input.get("custom_inputs", None)`

astropy/astropy (+2 -0 violations, +0 -0 fixes)

+ astropy/coordinates/tests/test_sky_coord.py:158:12: SIM910 [*] Use `attrs0.get(attrnm)` instead of `attrs0.get(attrnm, None)`
+ astropy/utils/data.py:1780:25: SIM910 [*] Use `sources.get(u)` instead of `sources.get(u, None)`

Changes by rule (1 rules affected)

code total + violation - violation + fix - fix
SIM910 4 4 0 0 0

Linter (preview)

ℹ️ ecosystem check detected linter changes. (+4 -0 violations, +0 -0 fixes in 3 projects; 52 projects unchanged)

apache/airflow (+1 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --no-fix --output-format concise --preview --select ALL

+ providers/google/src/airflow/providers/google/cloud/log/stackdriver_task_handler.py:233:27: SIM910 [*] Use `metadata.get("next_page_token")` instead of `metadata.get("next_page_token", None)`

mlflow/mlflow (+1 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --no-fix --output-format concise --preview

+ mlflow/pyfunc/loaders/chat_agent.py:66:25: SIM910 [*] Use `dict_input.get("custom_inputs")` instead of `dict_input.get("custom_inputs", None)`

astropy/astropy (+2 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --no-fix --output-format concise --preview

+ astropy/coordinates/tests/test_sky_coord.py:158:12: SIM910 [*] Use `attrs0.get(attrnm)` instead of `attrs0.get(attrnm, None)`
+ astropy/utils/data.py:1780:25: SIM910 [*] Use `sources.get(u)` instead of `sources.get(u, None)`

Changes by rule (1 rules affected)

code total + violation - violation + fix - fix
SIM910 4 4 0 0 0

@ntBre ntBre added the bug Something isn't working label Jun 20, 2025
Copy link
Contributor

@ntBre ntBre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, this makes sense to me. And good catch on the tests not running!

I'll update the title to be something about shadowing. As the ecosystem report shows, this wasn't actually specific to the dict name, just that dict was shadowing the builtin and thus not the only_binding.

@ntBre ntBre changed the title [flake8-simplify] Fix false positives in SIM910 and SIM911 if variable is named dict [flake8-simplify] Fix false negatives for shadowed bindings (SIM910 , SIM911) Jun 20, 2025
@ntBre ntBre changed the title [flake8-simplify] Fix false negatives for shadowed bindings (SIM910 , SIM911) [flake8-simplify] Fix false negatives for shadowed bindings (SIM910, SIM911) Jun 20, 2025
@ntBre ntBre merged commit ffb09c8 into astral-sh:main Jun 20, 2025
36 checks passed
dcreager added a commit that referenced this pull request Jun 20, 2025
* main: (21 commits)
  [`flake8-logging`] Avoid false positive for `exc_info=True` outside `logger.exception` (`LOG014`) (#18737)
  [`flake8-pie`] Small docs fix to `PIE794` (#18829)
  [`pylint`] Ignore __init__.py files in (PLC0414) (#18400)
  Avoid generating diagnostics with per-file ignores (#18801)
  [`flake8-simplify`] Fix false negatives for shadowed bindings  (`SIM910`, `SIM911`) (#18794)
  [ty] Fix panics when pulling types for `ClassVar` or `Final` parameterized with >1 argument (#18824)
  [`pylint`] add fix safety section (`PLR1714`) (#18415)
  [Perflint] Small docs improvement to `PERF401` (#18786)
  [`pylint`] Avoid flattening nested `min`/`max` when outer call has single argument (`PLW3301`) (#16885)
  [`ruff`] Added `cls.__dict__.get('__annotations__')` check (`RUF063`) (#18233)
  [ty] Use `HashTable` in `PlaceTable` (#18819)
  docs: Correct collections-named-tuple example to use PascalCase assignment (#16884)
  [ty] ecosystem-analyzer workflow (#18719)
  [ty] Add support for `@staticmethod`s (#18809)
  unnecessary_dict_kwargs doc - a note on type checking benefits (#18666)
  [`flake8-pytest-style`] Mark autofix for `PT001` and `PT023` as unsafe if there's comments in the decorator (#18792)
  [ty] Surface matched overload diagnostic directly (#18452)
  [ty] Report when a dataclass contains more than one `KW_ONLY` field (#18731)
  [`flake8-pie`] Add fix safety section to `PIE794` (#18802)
  [`pycodestyle`] Add fix safety section to `W291` and `W293`  (#18800)
  ...
@LaBatata101 LaBatata101 deleted the fix-SIM911pt2 branch June 20, 2025 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[flake8-simplify] SIM910/SIM911 false negative if variable is named dict

2 participants