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
Avoid C1901 violations within subscripts #3517
Conversation
Open to feedback on how we should approach these kinds of issues. We don't have enough typing information to know for certain that the comparison is "valid", but my guess is that it's also pretty unlikely in practice that this kind of comparison within brackets would be used for anything else. |
ℹ️ ecosystem check detected changes. (+0, -2, 0 error(s)) airflow (+0, -2)
- airflow/providers/apache/hive/transfers/mssql_to_hive.py:118:64: PLC1901 `field[0] == ""` can be simplified to `not field[0]` as an empty string is falsey
- airflow/providers/apache/hive/transfers/vertica_to_hive.py:122:56: PLC1901 `field[0] == ""` can be simplified to `not field[0]` as an empty string is falsey |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this another use case where the concept of dialects or knowing about the used frameworks could help?
@@ -251,6 +251,11 @@ impl<'a> Context<'a> { | |||
self.exprs.iter().rev().nth(2) | |||
} | |||
|
|||
/// Return an [`Iterator`] over the current `Expr` parents. | |||
pub fn iter_exprs(&self) -> impl Iterator<Item = &RefEquality<'a, Expr>> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: Call it expr_ancestors
to clarify that it doesn't iterate over the expressions but the ancestor tree?
5e14a11
to
dfea74b
Compare
PR Check ResultsEcosystemℹ️ ecosystem check detected changes. (+0, -2, 0 error(s)) airflow (+0, -2)
- airflow/providers/apache/hive/transfers/mssql_to_hive.py:118:64: PLC1901 `field[0] == ""` can be simplified to `not field[0]` as an empty string is falsey
- airflow/providers/apache/hive/transfers/vertica_to_hive.py:122:56: PLC1901 `field[0] == ""` can be simplified to `not field[0]` as an empty string is falsey Windows
|
[![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.256` -> `^0.0.257` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/compatibility-slim/0.0.256)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/confidence-slim/0.0.256)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.257`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.257) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.256...v0.0.257) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`ruff`] Prefer `itertools.pairwise()` over `zip()` for successive pairs (`RUF007`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [astral-sh/ruff#3501 - \[`flake8-bugbear`] Add `no-explicit-stacklevel` (`B028`) by [@​johnor](https://togithub.com/johnor) in [astral-sh/ruff#3550 - \[`pylint`] invalid-characters-\* by [@​r3m0t](https://togithub.com/r3m0t) in [astral-sh/ruff#3552 - \[`pylint`] Implement `useless-return` (`R1711`) by [@​tomecki](https://togithub.com/tomecki) in [astral-sh/ruff#3116 - \[`pylint`]: Implement `continue-in-finally` (`E0116`) by [@​latonis](https://togithub.com/latonis) in [astral-sh/ruff#3541 ##### Bug Fixes - Rewrite mock import with starred imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3566 - Respect `type` overrides in E721 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3582 - Use `value > max` style in pylint and mccabe messages by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#3553 - Fix autofix conflict between `D209` and `D400` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3564 - Avoid C1901 violations within subscripts by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3517 - Avoid adding dashed line outside of docstring by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3581 - Enable ANSI colors on Windows 10 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3583 #### New Contributors - [@​johnor](https://togithub.com/johnor) made their first contribution in [astral-sh/ruff#3550 **Full Changelog**: astral-sh/ruff@v0.0.256...v0.0.257 </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:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMC4yIiwidXBkYXRlZEluVmVyIjoiMzUuMTAuMiJ9--> Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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.256` -> `==0.0.257` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/compatibility-slim/0.0.256)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.257/confidence-slim/0.0.256)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.257`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.257) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.256...v0.0.257) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`ruff`] Prefer `itertools.pairwise()` over `zip()` for successive pairs (`RUF007`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [astral-sh/ruff#3501 - \[`flake8-bugbear`] Add `no-explicit-stacklevel` (`B028`) by [@​johnor](https://togithub.com/johnor) in [astral-sh/ruff#3550 - \[`pylint`] invalid-characters-\* by [@​r3m0t](https://togithub.com/r3m0t) in [astral-sh/ruff#3552 - \[`pylint`] Implement `useless-return` (`R1711`) by [@​tomecki](https://togithub.com/tomecki) in [astral-sh/ruff#3116 - \[`pylint`]: Implement `continue-in-finally` (`E0116`) by [@​latonis](https://togithub.com/latonis) in [astral-sh/ruff#3541 ##### Bug Fixes - Rewrite mock import with starred imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3566 - Respect `type` overrides in E721 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3582 - Use `value > max` style in pylint and mccabe messages by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#3553 - Fix autofix conflict between `D209` and `D400` by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3564 - Avoid C1901 violations within subscripts by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3517 - Avoid adding dashed line outside of docstring by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3581 - Enable ANSI colors on Windows 10 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3583 #### New Contributors - [@​johnor](https://togithub.com/johnor) made their first contribution in [astral-sh/ruff#3550 **Full Changelog**: astral-sh/ruff@v0.0.256...v0.0.257 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, 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/allenporter/flux-local). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNC4yIiwidXBkYXRlZEluVmVyIjoiMzUuMTQuMiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Summary
I'm not sold on merging this, but... this PR turns off "compare-to-empty-string" violations when such comparisons are used within a subscript, like
df[x == ""]
. This is a common idiom in Pandas especially, wherex == ""
is an elementwise comparison, and can't be replaced withx
orbool(x)
or whatever.The downside here is that we trade off some false positives for false negatives.
Closes #3494.