Skip to content

Comments

[flake8-pie] Add fix safety section to PIE794#18802

Merged
dylwil3 merged 2 commits intoastral-sh:mainfrom
MeGaGiGaGon:fix-safety-section-duplicate_class_field_definition
Jun 19, 2025
Merged

[flake8-pie] Add fix safety section to PIE794#18802
dylwil3 merged 2 commits intoastral-sh:mainfrom
MeGaGiGaGon:fix-safety-section-duplicate_class_field_definition

Conversation

@MeGaGiGaGon
Copy link
Contributor

Summary

Part of #15584

This PR adds a fix safety section to PIE794

I could not track down when this rule was initially implemented/made unsafe due how old it could be + multiple large refactors to ruff.

There is no comment/reasoning in the code given for the unsafety.

Here is a code example demonstrating why it should be unsafe, since removing any of the assignments would change program behavior playground

class A:
    x = 1
    x = 2
    print(x)

class B:
    x = print(3)
    x = print(4)

class C:
    x = [1,2,3]
    y = x
    x = y[1]

Test Plan

N/A, no tests affected.

Copy link
Collaborator

@dylwil3 dylwil3 left a comment

Choose a reason for hiding this comment

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

Thanks! I think there's a more basic reason for unsafety here.

@dylwil3 dylwil3 enabled auto-merge (squash) June 19, 2025 21:48
@dylwil3 dylwil3 added the documentation Improvements or additions to documentation label Jun 19, 2025
@dylwil3 dylwil3 merged commit 50bf3fa into astral-sh:main Jun 19, 2025
31 checks passed
@github-actions
Copy link
Contributor

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

@MeGaGiGaGon MeGaGiGaGon deleted the fix-safety-section-duplicate_class_field_definition branch June 19, 2025 22:16
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)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants