-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[ruff-0.9] Stabilise two pydoclint
rules
#15326
Conversation
I opened a separate PR here to improve the documentation: #15325. I separated it out as it also touches other rules, and it can be merged even if we decide not to stabilise these rules. |
|
code | total | + violation | - violation | + fix | - fix |
---|---|---|---|---|---|
DOC202 | 93 | 93 | 0 | 0 | 0 |
FA100 | 4 | 4 | 0 | 0 | 0 |
DOC403 | 1 | 1 | 0 | 0 | 0 |
Linter (preview)
ℹ️ ecosystem check detected linter changes. (+2532 -1599 violations, +4 -0 fixes in 30 projects; 25 projects unchanged)
RasaHQ/rasa (+1 -1 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
+ tests/core/training/test_interactive.py:663:58: RUF025 [*] Unnecessary empty iterable within a deque call - tests/core/training/test_interactive.py:663:58: RUF037 [*] Unnecessary empty iterable within a deque call
aiven/aiven-client (+409 -0 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
+ aiven/client/argx.py:104:38: UP006 Use `collections.abc.Iterable` instead of `Iterable` for type annotation + aiven/client/argx.py:155:54: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:171:45: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:174:49: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:241:29: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:278:34: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:278:44: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:290:32: UP006 Use `collections.abc.Sequence` instead of `Sequence` for type annotation + aiven/client/argx.py:300:29: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + aiven/client/argx.py:303:34: UP006 Use `collections.abc.Sequence` instead of `Sequence` for type annotation ... 399 additional changes omitted for project
PlasmaPy/PlasmaPy (+0 -4 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
- tests/particles/test_decorators.py:437:5: B903 Class could be dataclass or namedtuple - tests/particles/test_decorators.py:456:5: B903 Class could be dataclass or namedtuple - tests/particles/test_decorators.py:494:5: B903 Class could be dataclass or namedtuple - tests/particles/test_decorators_annotations.py:16:1: B903 Class could be dataclass or namedtuple
apache/airflow (+487 -11 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL
+ airflow/api/auth/backend/deny_all.py:34:24: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + airflow/api_connexion/parameters.py:87:24: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + airflow/api_connexion/parameters.py:90:52: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + airflow/api_connexion/parameters.py:90:78: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + airflow/api_connexion/security.py:114:6: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + airflow/api_connexion/security.py:161:54: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation ... 478 additional changes omitted for rule UP006 + airflow/utils/log/logging_mixin.py:175:9: PLR6301 Method `writable` could be a function, class method, or static method - airflow/utils/log/logging_mixin.py:175:9: PLR6301 Method `writable` could be a function, class method, or static method + airflow/utils/log/logging_mixin.py:1:1: CPY001 Missing copyright notice at top of file - airflow/utils/log/logging_mixin.py:1:1: CPY001 Missing copyright notice at top of file ... 488 additional changes omitted for project
apache/superset (+246 -80 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL
+ scripts/check-env.py:37:40: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + superset/advanced_data_type/types.py:58:21: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + superset/advanced_data_type/types.py:59:23: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + superset/async_events/async_query_manager.py:106:22: UP007 Use `X | Y` for type annotations - superset/async_events/async_query_manager.py:106:22: UP045 Use `X | None` for type annotations + superset/async_events/async_query_manager.py:108:29: UP007 Use `X | Y` for type annotations - superset/async_events/async_query_manager.py:108:29: UP045 Use `X | None` for type annotations + superset/async_events/async_query_manager.py:109:38: UP007 Use `X | Y` for type annotations - superset/async_events/async_query_manager.py:109:38: UP045 Use `X | None` for type annotations + superset/async_events/async_query_manager.py:112:34: UP007 Use `X | Y` for type annotations ... 316 additional changes omitted for project
bokeh/bokeh (+250 -0 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL
+ release/action.py:27:31: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + release/action.py:27:52: UP006 Use `collections.abc.Sequence` instead of `Sequence` for type annotation + release/action.py:35:47: UP006 Use `collections.abc.Sequence` instead of `Sequence` for type annotation + release/build.py:144:22: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + release/credentials.py:37:22: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + release/credentials.py:40:38: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + release/pipeline.py:24:12: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + release/pipeline.py:34:31: UP006 Use `collections.abc.Sequence` instead of `Sequence` for type annotation + release/ui.py:103:33: UP006 Use `collections.abc.Sequence` instead of `Sequence` for type annotation + release/ui.py:24:17: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation ... 240 additional changes omitted for project
ibis-project/ibis (+3 -102 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
- ibis/backends/bigquery/__init__.py:847:48: UP045 [*] Use `X | None` for type annotations - ibis/common/graph.py:171:46: UP045 [*] Use `X | None` for type annotations - ibis/common/graph.py:203:50: UP045 [*] Use `X | None` for type annotations - ibis/common/graph.py:275:41: UP045 [*] Use `X | None` for type annotations - ibis/common/graph.py:310:47: UP045 [*] Use `X | None` for type annotations - ibis/common/graph.py:359:47: UP045 [*] Use `X | None` for type annotations ... 97 additional changes omitted for rule UP045 + ibis/common/tests/test_patterns.py:1122:13: UP006 [*] Use `collections.abc.Callable` instead of `Callable` for type annotation + ibis/common/tests/test_patterns.py:1125:10: UP006 [*] Use `collections.abc.Callable` instead of `Callable` for type annotation + ibis/common/tests/test_patterns.py:731:31: UP006 [*] Use `collections.abc.Callable` instead of `Callable` for type annotation ... 96 additional changes omitted for project
langchain-ai/langchain (+299 -1149 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
+ libs/core/langchain_core/_api/beta_decorator.py:128:35: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + libs/core/langchain_core/_api/beta_decorator.py:186:35: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + libs/core/langchain_core/_api/beta_decorator.py:201:35: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + libs/core/langchain_core/_api/beta_decorator.py:30:30: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + libs/core/langchain_core/_api/beta_decorator.py:39:6: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + libs/core/langchain_core/_api/deprecation.py:202:35: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation ... 294 additional changes omitted for rule UP006 - libs/core/langchain_core/caches.py:149:36: UP045 Use `X | None` for type annotations - libs/core/langchain_core/caches.py:167:55: UP045 Use `X | None` for type annotations - libs/core/langchain_core/caches.py:200:62: UP045 Use `X | None` for type annotations - libs/core/langchain_core/caches.py:52:55: UP045 Use `X | None` for type annotations - libs/core/langchain_core/caches.py:97:62: UP045 Use `X | None` for type annotations - libs/core/langchain_core/callbacks/base.py:104:24: UP045 Use `X | None` for type annotations ... 1143 additional changes omitted for rule UP045 - libs/core/tests/unit_tests/tracers/test_langchain.py:103:5: B903 Class could be dataclass or namedtuple ... 1435 additional changes omitted for project
latchbio/latch (+13 -13 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
+ src/latch/registry/record.py:188:57: UP007 Use `X | Y` for type annotations - src/latch/registry/record.py:188:57: UP045 Use `X | None` for type annotations + src/latch/registry/record.py:190:64: UP007 Use `X | Y` for type annotations - src/latch/registry/record.py:190:64: UP045 Use `X | None` for type annotations + src/latch/registry/record.py:215:53: UP007 Use `X | Y` for type annotations - src/latch/registry/record.py:215:53: UP045 Use `X | None` for type annotations + src/latch/registry/record.py:217:60: UP007 Use `X | Y` for type annotations - src/latch/registry/record.py:217:60: UP045 Use `X | None` for type annotations + src/latch/registry/record.py:250:10: UP007 Use `X | Y` for type annotations - src/latch/registry/record.py:250:10: UP045 Use `X | None` for type annotations ... 16 additional changes omitted for project
lnbits/lnbits (+47 -208 violations, +0 -0 fixes)
ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview
+ lnbits/app.py:342:46: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + lnbits/app.py:352:47: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation - lnbits/core/models.py:102:15: UP045 Use `X | None` for type annotations - lnbits/core/models.py:107:20: UP045 Use `X | None` for type annotations - lnbits/core/models.py:108:15: UP045 Use `X | None` for type annotations - lnbits/core/models.py:109:15: UP045 Use `X | None` for type annotations - lnbits/core/models.py:110:12: UP045 Use `X | None` for type annotations - lnbits/core/models.py:111:19: UP045 Use `X | None` for type annotations ... 203 additional changes omitted for rule UP045 + lnbits/core/models.py:332:30: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation + lnbits/core/models.py:333:31: UP006 Use `collections.abc.Callable` instead of `Callable` for type annotation ... 245 additional changes omitted for project
... Truncated remaining completed project reports due to GitHub comment length restrictions
Changes by rule (11 rules affected)
code | total | + violation | - violation | + fix | - fix |
---|---|---|---|---|---|
UP006 | 2431 | 2431 | 0 | 0 | 0 |
UP045 | 1552 | 0 | 1552 | 0 | 0 |
UP007 | 92 | 92 | 0 | 0 | 0 |
B903 | 40 | 0 | 40 | 0 | 0 |
FA100 | 4 | 4 | 0 | 0 | 0 |
FURB171 | 4 | 0 | 0 | 4 | 0 |
RUF025 | 3 | 3 | 0 | 0 | 0 |
RUF037 | 3 | 0 | 3 | 0 | 0 |
PLR6301 | 2 | 1 | 1 | 0 | 0 |
CPY001 | 2 | 1 | 1 | 0 | 0 |
RUF100 | 2 | 0 | 2 | 0 | 0 |
False positive here in the ecosystem report: https://github.com/bokeh/bokeh/blob/829b2a75c402d0d0abd7e37ff201fbdfd949d857/src/bokeh/core/query.py#L65 the function returns a generator expression, which comes to the same thing as explicitly yielding using a |
A bunch of the def foo():
"""Does fooey things.
Returns:
None.
""" That seems pretty reasonable to me, honestly. Maybe we could consider making it configurable so that it's ignored for functions with |
Anyway, given the open questions here and the large fallout, I'm now leaning towards not stabilising either of these just yet. (Though note that a lot of the ecosystem hits are regarding other rules; I'm not sure why they're showing up here. Possibly because the |
I agree this too disruptive to stabilize just now without further discussion. In fact, I guess these ecosystem results are making me revise my earlier opinion: maybe there is a relationship with |
Summary
Stabilise two
pydoclint
rules for Ruff 0.9:docstring-extraneous-returns
(DOC202
)docstring-extraneous-yields
(DOC403
)There are no open issues about either of these, and they've been in preview for three months now. The only open PR about them is #13286, which could easily be a preview-only change; I don't think it needs to block the rules being stabilised.
Test Plan
Ecosystem check on this PR.