Skip to content

Conversation

@scop
Copy link
Contributor

@scop scop commented Jan 21, 2023

Extend test fixture to verify the targeting.

Includes two "attribute docstrings" which per PEP 257 are not recognized by the Python bytecode compiler or available as runtime object attributes. They are not available for us either at time of writing, but include them for completeness anyway in case they one day are.

Rust newbie here, review with a fine comb greatly appreciated :)

Extend test fixture to verify the targeting.

Includes two "attribute docstrings" which per PEP 257 are not recognized
by the Python bytecode compiler or available as runtime object
attributes. They are not available for us either at time of writing, but
include them for completeness anyway in case they one day are.
@scop scop force-pushed the feat/d401-improvements branch from ed2ed3c to 49ea407 Compare January 21, 2023 21:26
Copy link
Member

@charliermarsh charliermarsh left a comment

Choose a reason for hiding this comment

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

Great! Let me know if any of the below is unclear.

decorator_list,
..
} => {
if name.starts_with("test") || name.eq("runTest") {
Copy link
Member

Choose a reason for hiding this comment

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

We have a little helper for this --- cast::name from src/ast/cast.rs. We know these are functions, even though it's not encoded in the type system. (Not great, but we should definitely error anyway if we get a non-FunctionDef here.)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Made use of that and cast::decorator_list in 05ec78c.

for expr in decorator_list.iter() {
if let ExprKind::Name { id, .. } = &expr.node {
if id.eq("property") {
return;
Copy link
Member

Choose a reason for hiding this comment

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

It looks like Pydocstyle defaults to accepting property,cached_property,functools.cached_property.

Maybe just for consistency with this "kind" of check, let's add a method to src/visibilty.rs like:

pub fn is_property(checker: &Checker, decorator_list: &[Expr]) -> bool {
    decorator_list.iter().any(|expr| {
        checker.resolve_call_path(expr).map_or(false, |call_path| {
            call_path.as_slice() == ["", "property"] || call_path.as_slice() == ["functools", "cached_property"]
        })
    })
}

That will check the additional decorator and ensure that it only triggers when functools is imported and track aliases and track overrides :)

Copy link
Contributor Author

@scop scop Jan 21, 2023

Choose a reason for hiding this comment

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

I actually implemented is_property in visibility.rs in my first cut of this patch, but then decided to move it back, "inlined" at the call site. I felt @property isn't actually related to visibility in the broad sense the other similar helpers there are, and thus it seemed misplaced.

But no strong opinions really, could you confirm if you'd still rather see it there and I'll refactor.

In any case, will revise this tomorrow. Thanks!

Copy link
Member

Choose a reason for hiding this comment

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

Yeah I think that's a totally reasonable instinct, but I'd still rather see it in there. There are some other helpers in that file that aren't really related to visibility (like is_override), and I'd like to have them logically grouped for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, done in f38b51a.

@charliermarsh
Copy link
Member

Looks great! Will merge when CI is green.

@charliermarsh charliermarsh merged commit 6a6a792 into astral-sh:main Jan 22, 2023
@charliermarsh
Copy link
Member

Thanks tons.

@scop scop deleted the feat/d401-improvements branch January 22, 2023 20:40
@akx
Copy link
Contributor

akx commented Jan 23, 2023

@scop Thanks for refining this! ❤️

bruxisma referenced this pull request in ixm-one/pytest-cmake-presets Jan 24, 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.230` ->
`^0.0.231` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.231/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.231/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.231/compatibility-slim/0.0.230)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.231/confidence-slim/0.0.230)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

#### What's Changed

- fix: issue D401 only for non-test/property functions and methods by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/charliermarsh/ruff/pull/2071](https://togithub.com/charliermarsh/ruff/pull/2071)
- feat: flake8-use-pathlib PTH100-124 by
[@&#8203;sbrugman](https://togithub.com/sbrugman) in
[https://github.com/charliermarsh/ruff/pull/2090](https://togithub.com/charliermarsh/ruff/pull/2090)
- refactor: remove redundant enum by
[@&#8203;sbrugman](https://togithub.com/sbrugman) in
[https://github.com/charliermarsh/ruff/pull/2091](https://togithub.com/charliermarsh/ruff/pull/2091)
- feat: Implement TRY201 by
[@&#8203;alonme](https://togithub.com/alonme) in
[https://github.com/charliermarsh/ruff/pull/2073](https://togithub.com/charliermarsh/ruff/pull/2073)
- Avoid nested-if violations when outer-if has else clause by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/2095](https://togithub.com/charliermarsh/ruff/pull/2095)
- Add flake8-pie PIE804: no-unnecessary-dict-kwargs by
[@&#8203;sbdchd](https://togithub.com/sbdchd) in
[https://github.com/charliermarsh/ruff/pull/1884](https://togithub.com/charliermarsh/ruff/pull/1884)
- Add flake8-pie PIE800: no-unnecessary-spread by
[@&#8203;sbdchd](https://togithub.com/sbdchd) in
[https://github.com/charliermarsh/ruff/pull/1881](https://togithub.com/charliermarsh/ruff/pull/1881)
- Remove some usages of default format for expressions by
[@&#8203;charliermarsh](https://togithub.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/2100](https://togithub.com/charliermarsh/ruff/pull/2100)
- docs(readme): add pypa cibuildwheel by
[@&#8203;sbrugman](https://togithub.com/sbrugman) in
[https://github.com/charliermarsh/ruff/pull/2107](https://togithub.com/charliermarsh/ruff/pull/2107)
- refactor: Get rid of `build.rs` and other refactors by
[@&#8203;not-my-profile](https://togithub.com/not-my-profile) in
[https://github.com/charliermarsh/ruff/pull/2101](https://togithub.com/charliermarsh/ruff/pull/2101)
- Fix outdated description of ruff's support of isort settings by
[@&#8203;thomkeh](https://togithub.com/thomkeh) in
[https://github.com/charliermarsh/ruff/pull/2106](https://togithub.com/charliermarsh/ruff/pull/2106)
- \[`flake8-bandit`] Added Rule `S612` (Use of insecure
`logging.config.listen`) by
[@&#8203;saadmk11](https://togithub.com/saadmk11) in
[https://github.com/charliermarsh/ruff/pull/2108](https://togithub.com/charliermarsh/ruff/pull/2108)

#### New Contributors

- [@&#8203;sbdchd](https://togithub.com/sbdchd) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/1884](https://togithub.com/charliermarsh/ruff/pull/1884)

**Full Changelog**:
astral-sh/ruff@v0.0.230...v0.0.231

</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:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDkuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEwOS4xIn0=-->

Signed-off-by: Renovate Bot <[email protected]>
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.

3 participants