Skip to content
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

[pycodestyle] Stabilize: Exempt pytest.importorskip calls (E402) #15338

Merged
merged 1 commit into from
Jan 8, 2025

Conversation

MichaReiser
Copy link
Member

Summary

Stabilize the behavior changes introduced in #14474

There are no known issues around this specific behavior.

@MichaReiser MichaReiser added the rule Implementing or modifying a lint rule label Jan 8, 2025
Copy link

codspeed-hq bot commented Jan 8, 2025

CodSpeed Performance Report

Merging #15338 will improve performances by 4.48%

Comparing micha/pytest-import-skip (9cd9f5b) with ruff-0.9 (49c4d12)

Summary

⚡ 1 improvements
✅ 31 untouched benchmarks

Benchmarks breakdown

Benchmark ruff-0.9 micha/pytest-import-skip Change
red_knot_check_file[cold] 88.1 ms 84.3 ms +4.48%

Copy link
Contributor

github-actions bot commented Jan 8, 2025

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+40 -21 violations, +0 -0 fixes in 8 projects; 47 projects unchanged)

apache/airflow (+10 -9 violations, +0 -0 fixes)

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

+ airflow/configuration.py:1313:17: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- airflow/configuration.py:1313:17: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ airflow/utils/log/action_logger.py:22:5: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- airflow/utils/log/action_logger.py:22:5: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
+ dev/breeze/src/airflow_breeze/utils/cdxgen.py:589:9: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- dev/breeze/src/airflow_breeze/utils/cdxgen.py:589:9: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ dev/breeze/src/airflow_breeze/utils/reproducible.py:142:25: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- dev/breeze/src/airflow_breeze/utils/reproducible.py:142:25: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
... 11 additional changes omitted for rule FURB188
+ providers/tests/weaviate/operators/test_weaviate.py:27:62: RUF100 [*] Unused `noqa` directive (unused: `E402`)
... 10 additional changes omitted for project

bokeh/bokeh (+2 -2 violations, +0 -0 fixes)

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

+ src/bokeh/util/compiler.py:511:9: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- src/bokeh/util/compiler.py:511:9: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ tests/support/plugins/file_server.py:63:9: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- tests/support/plugins/file_server.py:63:9: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.

ibis-project/ibis (+4 -0 violations, +0 -0 fixes)

+ ibis/backends/impala/tests/test_ddl.py:18:44: RUF100 Unused `noqa` directive (unused: `E402`)
+ ibis/backends/impala/tests/test_parquet_ddl.py:12:44: RUF100 Unused `noqa` directive (unused: `E402`)
+ ibis/backends/impala/tests/test_partition.py:13:48: RUF100 Unused `noqa` directive (unused: `E402`)
+ ibis/tests/expr/test_pretty_repr.py:13:66: RUF100 Unused `noqa` directive (unused: `E402`)

langchain-ai/langchain (+1 -1 violations, +0 -0 fixes)

+ libs/core/langchain_core/language_models/llms.py:352:9: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- libs/core/langchain_core/language_models/llms.py:352:9: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.

latchbio/latch (+2 -2 violations, +0 -0 fixes)

+ src/latch_cli/snakemake/single_task_snakemake.py:365:12: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- src/latch_cli/snakemake/single_task_snakemake.py:365:12: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
+ src/latch_cli/utils/__init__.py:106:5: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- src/latch_cli/utils/__init__.py:106:5: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.

reflex-dev/reflex (+1 -1 violations, +0 -0 fixes)

+ reflex/components/component.py:664:17: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- reflex/components/component.py:664:17: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.

pdm-project/pdm (+4 -0 violations, +0 -0 fixes)

+ src/pdm/cli/commands/cache.py:37:47: FA100 Add `from __future__ import annotations` to simplify `typing.Iterable`
+ src/pdm/cli/commands/cache.py:97:20: FA100 Add `from __future__ import annotations` to simplify `typing.Iterable`
+ src/pdm/cli/commands/config.py:102:36: FA100 Add `from __future__ import annotations` to simplify `typing.Mapping`
+ src/pdm/cli/commands/config.py:102:67: FA100 Add `from __future__ import annotations` to simplify `typing.Mapping`

astropy/astropy (+16 -6 violations, +0 -0 fixes)

+ astropy/io/fits/hdu/compressed/_tiled_compression.py:259:5: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- astropy/io/fits/hdu/compressed/_tiled_compression.py:259:5: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
+ astropy/io/fits/header.py:1646:9: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- astropy/io/fits/header.py:1646:9: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
+ astropy/io/votable/converters.py:1056:13: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- astropy/io/votable/converters.py:1056:13: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ astropy/io/votable/converters.py:1058:13: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- astropy/io/votable/converters.py:1058:13: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ astropy/io/votable/converters.py:326:13: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- astropy/io/votable/converters.py:326:13: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
... 3 additional changes omitted for rule FURB188
+ astropy/modeling/tests/test_fitting_parallel.py:10:31: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:11:44: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:13:33: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:14:41: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:19:40: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:25:55: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:26:60: RUF100 [*] Unused `noqa` directive (unused: `E402`)
+ astropy/modeling/tests/test_fitting_parallel.py:27:57: RUF100 [*] Unused `noqa` directive (unused: `E402`)
... 4 additional changes omitted for project

Changes by rule (3 rules affected)

code total + violation - violation + fix - fix
FURB188 42 21 21 0 0
RUF100 15 15 0 0 0
FA100 4 4 0 0 0

Linter (preview)

ℹ️ ecosystem check detected linter changes. (+2553 -1620 violations, +4 -0 fixes in 31 projects; 24 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 (+496 -20 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/configuration.py:1313:17: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- airflow/configuration.py:1313:17: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ airflow/utils/log/action_logger.py:22:5: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- airflow/utils/log/action_logger.py:22:5: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
... 506 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 (+252 -2 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
... 245 additional changes omitted for rule UP006
+ src/bokeh/util/compiler.py:511:9: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- src/bokeh/util/compiler.py:511:9: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
+ tests/support/plugins/file_server.py:63:9: FURB188 [*] Prefer `removeprefix` over conditionally replacing with slice.
- tests/support/plugins/file_server.py:63:9: FURB188 [*] Prefer `str.removeprefix()` over conditionally replacing with slice.
... 244 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 (+300 -1150 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/langchain_core/language_models/llms.py:352:9: FURB188 [*] Prefer `removesuffix` over conditionally replacing with slice.
- libs/core/langchain_core/language_models/llms.py:352:9: FURB188 [*] Prefer `str.removesuffix()` over conditionally replacing with slice.
- 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 (+15 -15 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
... 20 additional changes omitted for project

... Truncated remaining completed project reports due to GitHub comment length restrictions

Changes by rule (12 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
FURB188 42 21 21 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

@MichaReiser MichaReiser changed the title [pycodestyle] Stabilize: Exempt pytest.importorskip() calls (E402) [pycodestyle] Stabilize: Exempt pytest.importorskip calls (E402) Jan 8, 2025
@MichaReiser MichaReiser merged commit 252b677 into ruff-0.9 Jan 8, 2025
21 checks passed
@MichaReiser MichaReiser deleted the micha/pytest-import-skip branch January 8, 2025 08:47
@MichaReiser MichaReiser mentioned this pull request Jan 8, 2025
2 tasks
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.

1 participant