Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[flake8-raise] Add Plugin and RSE102 Rule #2354

Merged
merged 2 commits into from Jan 31, 2023

Conversation

saadmk11
Copy link
Contributor

closes #2347

@charliermarsh
Copy link
Member

I'm tempted to put this in tryceratops rather than introduce a new category. But we don't really have any precedent for doing that. I need to think on it.

@ngnpope
Copy link
Contributor

ngnpope commented Jan 30, 2023

@charliermarsh I thought the same... It's a tricky one.

I guess in the fullness of time it might make sense to not group rules in ruff by the flake8 plugin they came from, but have a "lookup" for each plugin that states what is implemented and what rule it maps to in ruff, e.g.

flake8-raise:R100 → ruff:reraise-no-cause
flake8-raise:R101 → ruff:verbose-raise
flake8-raise:R102 → ruff:unnecessary-paren-on-raise-exception
tryceratops:TC200 → ruff:reraise-no-cause
tryceratops:TC201 → ruff:verbose-raise

And any rules that are intentionally not implemented, and the reason for their omission, can also be explained.

In a sense, the name of the plugin only feels relevant while transitioning to ruff. The main benefit is to have a comprehensive compatibility mapping1 to help people migrate and understand what has become of the rules they've been using. I guess that ties in somewhat with the discussions in #1773. (It would also be good to review those friendly names with respect to each other to ensure they make sense where they've been implemented in little islands before, e.g. reraise-no-cause might be better as reraise-without-from, verbose-raise might be better as reraise-redundant-argument, and unnecessary-paren-on-raise-exception could be raise-with-empty-parentheses?

Footnotes

  1. Might see if I can get around to this by dredging the issue tracker...

@ngnpope
Copy link
Contributor

ngnpope commented Jan 30, 2023

But we don't really have any precedent for doing that.

I think this furthers my point about:

In a sense, the name of the plugin only feels relevant while transitioning to ruff.

@charliermarsh
Copy link
Member

@ngnpope - Yeah this all makes sense. I've written about it a bit before, mostly here, but we'll eventually move towards a Ruff-first API that looks less like a Flake8 compatibility layer (while still retaining that layer). In that world, all of those rules can be categorized under the same exceptions category (or whatever's appropriate) rather than being split up by Flake8 plugins.

Soon, we're also going to enable a many-to-many mapping between these Flake8-like codes and the actual Ruff rules. So we'll be able to point both TRY200 and R100 to the same underlying rule, which would help too.

@charliermarsh
Copy link
Member

I think the right thing to do here, for consistency, is to add this as flake8-raise, and then we can alias the R100 and R101 rules once aliasing is up and running.

However -- we should use a different prefix, as R is too generic. RSE or RAI would be reasonable to me?

@ngnpope
Copy link
Contributor

ngnpope commented Jan 30, 2023

Agreed on switching the prefix. Either would work, but I guess RSE is potentially less likely to conflict with something else?

@saadmk11 saadmk11 changed the title [flake8-raise] Add Plugin and R102 Rule [flake8-raise] Add Plugin and RSE102 Rule Jan 31, 2023
@saadmk11
Copy link
Contributor Author

However -- we should use a different prefix, as R is too generic. RSE or RAI would be reasonable to me?

RSE sounds good to me. Updated the PR with it. :)

@charliermarsh charliermarsh added rule Implementing or modifying a lint rule plugin Implementing a known but unsupported plugin labels Jan 31, 2023
@charliermarsh charliermarsh merged commit 7c1a6bc into astral-sh:main Jan 31, 2023
@saadmk11 saadmk11 deleted the flake8-raise branch February 1, 2023 03:31
renovate bot added a commit to ixm-one/pytest-cmake-presets that referenced this pull request Feb 1, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.238` ->
`^0.0.239` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.239/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.239/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.239/compatibility-slim/0.0.238)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.239/confidence-slim/0.0.238)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.239`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.239)

[Compare
Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.238...v0.0.239)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Rules

- \[`pyupgrade`] Implement import-replacement rule (`UP035`) by
[@&#8203;colin99d](https://togithub.com/colin99d) in
[astral-sh/ruff#2049
- \[`flake8-raise`] Add Plugin and `RSE102` Rule by
[@&#8203;saadmk11](https://togithub.com/saadmk11) in
[astral-sh/ruff#2354
- \[`flake8-quotes`] Allow implicit multiline strings with internal
quotes to use non-preferred quote by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2416

##### Documentation

- Add a link to MkDocs by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2370
- Use human-readable types for documentation values by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2375

##### Bug Fixes

- \[`I001`] fix isort check for files with tabs and no indented blocks
by [@&#8203;sciyoshi](https://togithub.com/sciyoshi) in
[astral-sh/ruff#2374
- Don't panic for --statistics with no errors by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2391
- Handle multi-byte lines in RUF100 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2392
- Avoid implicit-namespace-package checks for .pyi files by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2420
- Include per-file ignore matches in debug logging by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2376
- Include method name in B027 message by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2403
- Avoid flagging same-condition cases in SIM103 by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2404
- feat: let SIM103 return expressions without bool() wrapping by
[@&#8203;spaceone](https://togithub.com/spaceone) in
[astral-sh/ruff#2410
- feat: let SIM210 return expressions without bool() wrapping
([#&#8203;2410](https://togithub.com/charliermarsh/ruff/issues/2410)) by
[@&#8203;spaceone](https://togithub.com/spaceone) in
[astral-sh/ruff#2426
- fix: ignore fix if "bool" is not builtin by
[@&#8203;spaceone](https://togithub.com/spaceone) in
[astral-sh/ruff#2429
- Avoid Bandit false-positives for empty-string-as-password by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[astral-sh/ruff#2421

#### New Contributors

- [@&#8203;eriknw](https://togithub.com/eriknw) made their first
contribution in
[astral-sh/ruff#2380
- [@&#8203;has2k1](https://togithub.com/has2k1) made their first
contribution in
[astral-sh/ruff#2386

**Full Changelog**:
astral-sh/ruff@v0.0.238...v0.0.239

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTcuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExNy4xIn0=-->

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plugin Implementing a known but unsupported plugin rule Implementing or modifying a lint rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement flake8-raise
3 participants