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

[pyupgrade] Implement import-replacement rule (UP035) #2049

Merged
merged 50 commits into from Jan 31, 2023
Merged

[pyupgrade] Implement import-replacement rule (UP035) #2049

merged 50 commits into from Jan 31, 2023

Conversation

colin99d
Copy link
Contributor

A part of #827. I started this trying to use libcst. However, if found it added a lot of complexity because I have to change the order of the imports, which really messed up the formatting. If you know of a good way to handle this I will be happy to switch.

@colin99d
Copy link
Contributor Author

colin99d commented Jan 21, 2023

@charliermarsh , I don't love the way I am handling muli-line imports. Pretty much, if there is a match I am always changing it to:

from unmatching (
    import1,
    import2
)
from matching {
    import1
    import2
)

However, I think this might be the best way for a few reasons:

  1. Libcst makes this a lot more complicated (unless there is something I am missing)
  2. If we are adding our own version of black, it makes sense for these functions to export in one standard way, and then let black clean up the change
  3. This standardizes all ruff code, which may be beneficial

@colin99d
Copy link
Contributor Author

I am moving this out of draft status. However, I will still be adding some more test cases to make sure it always works.

@colin99d colin99d marked this pull request as ready for review January 22, 2023 22:42
@colin99d
Copy link
Contributor Author

@charliermarsh what else do you want here for a merge (im not sure why only the windows texts are failing).

@charliermarsh
Copy link
Member

@colin99d - Nothing on your end. I just need to find time to review. Sorry for the delay. I'll rebase etc. when necessary.

@colin99d
Copy link
Contributor Author

Perfect! Just wanted to make sure you weren't waiting on something. Thank you for all the work you put into this!

@colin99d
Copy link
Contributor Author

@charliermarsh I got all the six stuff removed, would you like me to add a blurb in the readme about why we do not have six, and how users can run pyupgrade once, and then use us?

@charliermarsh
Copy link
Member

@colin99d - No that's ok. I'll add something to BREAKING_CHANGES.md and the release notes prior to release.

@charliermarsh
Copy link
Member

I want to change one more thing here, but hopefully it can go out tomorrow.

@charliermarsh charliermarsh changed the title Pyupgrade: Import Replacements [pyupgrade] Implement import-replacement rule (UP035) Jan 31, 2023
@charliermarsh charliermarsh merged commit ad8693e into astral-sh:main Jan 31, 2023
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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants