Skip to content

Conversation

tjkuson
Copy link
Contributor

@tjkuson tjkuson commented May 12, 2024

Summary

Changes future-rewritable-type-annotation (FA100) message to be less confusing. Uses phrasing from the rule documentation to be consistent. For example,

from_typing_import.py:5:13: FA100 Add `from __future__ import annotations` to rewrite `typing.List` more succinctly

Closes #10573.

Test Plan

cargo nextest run

Copy link
Contributor

github-actions bot commented May 12, 2024

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+6447 -6447 violations, +0 -0 fixes in 2 projects; 42 projects unchanged)

apache/airflow (+27 -27 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --no-preview --select ALL

+ airflow/serialization/pydantic/dataset.py:51:12: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- airflow/serialization/pydantic/dataset.py:51:12: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ airflow/serialization/pydantic/dataset.py:56:21: FA100 Add `from __future__ import annotations` to simplify `typing.List`
- airflow/serialization/pydantic/dataset.py:56:21: FA100 Missing `from __future__ import annotations`, but uses `typing.List`
+ airflow/serialization/pydantic/dataset.py:57:22: FA100 Add `from __future__ import annotations` to simplify `typing.List`
- airflow/serialization/pydantic/dataset.py:57:22: FA100 Missing `from __future__ import annotations`, but uses `typing.List`
+ airflow/serialization/pydantic/dataset.py:66:17: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- airflow/serialization/pydantic/dataset.py:66:17: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ airflow/serialization/pydantic/dataset.py:68:21: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- airflow/serialization/pydantic/dataset.py:68:21: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
... 44 additional changes omitted for project

zulip/zulip (+6420 -6420 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --no-preview --select ALL

+ analytics/lib/counts.py:105:23: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:105:23: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:106:24: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:106:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:106:68: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:106:68: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:119:53: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:119:53: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:183:49: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:183:49: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:212:49: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:212:49: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:306:15: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:306:15: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:306:24: FA100 Add `from __future__ import annotations` to simplify `typing.Union`
- analytics/lib/counts.py:306:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Union`
+ analytics/lib/counts.py:314:14: FA100 Add `from __future__ import annotations` to simplify `typing.Dict`
- analytics/lib/counts.py:314:14: FA100 Missing `from __future__ import annotations`, but uses `typing.Dict`
+ analytics/lib/counts.py:314:24: FA100 Add `from __future__ import annotations` to simplify `typing.Union`
- analytics/lib/counts.py:314:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Union`
+ analytics/lib/counts.py:315:20: FA100 Add `from __future__ import annotations` to simplify `typing.List`
- analytics/lib/counts.py:315:20: FA100 Missing `from __future__ import annotations`, but uses `typing.List`
+ analytics/lib/counts.py:436:15: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:436:15: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:436:24: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
- analytics/lib/counts.py:436:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Tuple`
+ analytics/lib/counts.py:436:30: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:436:30: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:470:19: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:470:19: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:472:15: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:472:15: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:472:24: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
- analytics/lib/counts.py:472:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Tuple`
+ analytics/lib/counts.py:472:30: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:472:30: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:475:73: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:475:73: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:488:51: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:488:51: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:523:69: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:523:69: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:536:21: FA100 Add `from __future__ import annotations` to simplify `typing.Dict`
- analytics/lib/counts.py:536:21: FA100 Missing `from __future__ import annotations`, but uses `typing.Dict`
+ analytics/lib/counts.py:536:26: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
- analytics/lib/counts.py:536:26: FA100 Missing `from __future__ import annotations`, but uses `typing.Tuple`
+ analytics/lib/counts.py:558:40: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:558:40: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:58:19: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
... 12791 additional changes omitted for project

Changes by rule (1 rules affected)

code total + violation - violation + fix - fix
FA100 12894 6447 6447 0 0

Linter (preview)

ℹ️ ecosystem check detected linter changes. (+6447 -6447 violations, +0 -0 fixes in 2 projects; 42 projects unchanged)

apache/airflow (+27 -27 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL

+ airflow/serialization/pydantic/dataset.py:51:12: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- airflow/serialization/pydantic/dataset.py:51:12: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ airflow/serialization/pydantic/dataset.py:56:21: FA100 Add `from __future__ import annotations` to simplify `typing.List`
- airflow/serialization/pydantic/dataset.py:56:21: FA100 Missing `from __future__ import annotations`, but uses `typing.List`
+ airflow/serialization/pydantic/dataset.py:57:22: FA100 Add `from __future__ import annotations` to simplify `typing.List`
- airflow/serialization/pydantic/dataset.py:57:22: FA100 Missing `from __future__ import annotations`, but uses `typing.List`
+ airflow/serialization/pydantic/dataset.py:66:17: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- airflow/serialization/pydantic/dataset.py:66:17: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ airflow/serialization/pydantic/dataset.py:68:21: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- airflow/serialization/pydantic/dataset.py:68:21: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
... 44 additional changes omitted for project

zulip/zulip (+6420 -6420 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --output-format concise --preview --select ALL

+ analytics/lib/counts.py:105:23: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:105:23: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:106:24: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:106:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:106:68: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:106:68: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:119:53: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:119:53: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:183:49: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:183:49: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:212:49: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:212:49: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:306:15: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:306:15: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:306:24: FA100 Add `from __future__ import annotations` to simplify `typing.Union`
- analytics/lib/counts.py:306:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Union`
+ analytics/lib/counts.py:314:14: FA100 Add `from __future__ import annotations` to simplify `typing.Dict`
- analytics/lib/counts.py:314:14: FA100 Missing `from __future__ import annotations`, but uses `typing.Dict`
+ analytics/lib/counts.py:314:24: FA100 Add `from __future__ import annotations` to simplify `typing.Union`
- analytics/lib/counts.py:314:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Union`
+ analytics/lib/counts.py:315:20: FA100 Add `from __future__ import annotations` to simplify `typing.List`
- analytics/lib/counts.py:315:20: FA100 Missing `from __future__ import annotations`, but uses `typing.List`
+ analytics/lib/counts.py:436:15: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:436:15: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:436:24: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
- analytics/lib/counts.py:436:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Tuple`
+ analytics/lib/counts.py:436:30: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:436:30: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:470:19: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:470:19: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:472:15: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:472:15: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:472:24: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
- analytics/lib/counts.py:472:24: FA100 Missing `from __future__ import annotations`, but uses `typing.Tuple`
+ analytics/lib/counts.py:472:30: FA100 Add `from __future__ import annotations` to simplify `typing.Type`
- analytics/lib/counts.py:472:30: FA100 Missing `from __future__ import annotations`, but uses `typing.Type`
+ analytics/lib/counts.py:475:73: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:475:73: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:488:51: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:488:51: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:523:69: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:523:69: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:536:21: FA100 Add `from __future__ import annotations` to simplify `typing.Dict`
- analytics/lib/counts.py:536:21: FA100 Missing `from __future__ import annotations`, but uses `typing.Dict`
+ analytics/lib/counts.py:536:26: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
- analytics/lib/counts.py:536:26: FA100 Missing `from __future__ import annotations`, but uses `typing.Tuple`
+ analytics/lib/counts.py:558:40: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
- analytics/lib/counts.py:558:40: FA100 Missing `from __future__ import annotations`, but uses `typing.Optional`
+ analytics/lib/counts.py:58:19: FA100 Add `from __future__ import annotations` to simplify `typing.Optional`
... 12791 additional changes omitted for project

Changes by rule (1 rules affected)

code total + violation - violation + fix - fix
FA100 12894 6447 6447 0 0

@charliermarsh charliermarsh enabled auto-merge (squash) May 13, 2024 01:31
@charliermarsh charliermarsh added the rule Implementing or modifying a lint rule label May 13, 2024
@charliermarsh charliermarsh merged commit 5ab4cc8 into astral-sh:main May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rule Implementing or modifying a lint rule
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improving "FA100 / future-rewritable-type-annotation" message
2 participants