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
Conversation
@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:
However, I think this might be the best way for a few reasons:
|
I am moving this out of draft status. However, I will still be adding some more test cases to make sure it always works. |
@charliermarsh what else do you want here for a merge (im not sure why only the windows texts are failing). |
@colin99d - Nothing on your end. I just need to find time to review. Sorry for the delay. I'll rebase etc. when necessary. |
Perfect! Just wanted to make sure you weren't waiting on something. Thank you for all the work you put into this! |
…into ImportReplacements
…into ImportReplacements
@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? |
@colin99d - No that's ok. I'll add something to |
I want to change one more thing here, but hopefully it can go out tomorrow. |
pyupgrade
] Implement import-replacement rule (UP035
)
[![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 [@​colin99d](https://togithub.com/colin99d) in [astral-sh/ruff#2049 - \[`flake8-raise`] Add Plugin and `RSE102` Rule by [@​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 [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2416 ##### Documentation - Add a link to MkDocs by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2370 - Use human-readable types for documentation values by [@​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 [@​sciyoshi](https://togithub.com/sciyoshi) in [astral-sh/ruff#2374 - Don't panic for --statistics with no errors by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2391 - Handle multi-byte lines in RUF100 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2392 - Avoid implicit-namespace-package checks for .pyi files by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2420 - Include per-file ignore matches in debug logging by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2376 - Include method name in B027 message by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2403 - Avoid flagging same-condition cases in SIM103 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2404 - feat: let SIM103 return expressions without bool() wrapping by [@​spaceone](https://togithub.com/spaceone) in [astral-sh/ruff#2410 - feat: let SIM210 return expressions without bool() wrapping ([#​2410](https://togithub.com/charliermarsh/ruff/issues/2410)) by [@​spaceone](https://togithub.com/spaceone) in [astral-sh/ruff#2426 - fix: ignore fix if "bool" is not builtin by [@​spaceone](https://togithub.com/spaceone) in [astral-sh/ruff#2429 - Avoid Bandit false-positives for empty-string-as-password by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2421 #### New Contributors - [@​eriknw](https://togithub.com/eriknw) made their first contribution in [astral-sh/ruff#2380 - [@​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>
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.