Skip to content

Ruff 0.17 - #28694

Merged
ntBre merged 17 commits into
mainfrom
brent/0.17.0
Oct 9, 2026
Merged

Ruff 0.17#28694
ntBre merged 17 commits into
mainfrom
brent/0.17.0

Conversation

@ntBre

@ntBre ntBre commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

@ntBre ntBre added breaking Backwards-incompatible changes release Related to the release process (not for changelogs) labels Sep 18, 2026
@ntBre ntBre added this to the v0.17 milestone Sep 18, 2026
@astral-sh-bot

astral-sh-bot Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+803 -147 violations, +0 -0 fixes in 29 projects; 29 projects unchanged)

DisnakeDev/disnake (+34 -0 violations, +0 -0 fixes)

+ disnake/activity.py:5:8: ICN001 `datetime` should be imported as `dt`
+ disnake/audit_logs.py:35:12: ICN001 `datetime` should be imported as `dt`
+ disnake/automod.py:5:8: ICN001 `datetime` should be imported as `dt`
+ disnake/channel.py:6:8: ICN001 `datetime` should be imported as `dt`
+ disnake/embeds.py:5:8: ICN001 `datetime` should be imported as `dt`
+ disnake/entitlement.py:5:8: ICN001 `datetime` should be imported as `dt`
+ disnake/ext/commands/base_core.py:6:8: ICN001 `datetime` should be imported as `dt`
+ disnake/ext/commands/core.py:6:8: ICN001 `datetime` should be imported as `dt`
+ disnake/ext/tasks/__init__.py:6:8: ICN001 `datetime` should be imported as `dt`
+ disnake/guild.py:6:8: ICN001 `datetime` should be imported as `dt`
... 24 additional changes omitted for project

RasaHQ/rasa (+9 -0 violations, +0 -0 fixes)

+ rasa/core/brokers/kafka.py:95:111: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ rasa/core/channels/hangouts.py:219:113: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ rasa/core/channels/hangouts.py:274:98: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ rasa/core/channels/hangouts.py:275:92: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ rasa/core/channels/mattermost.py:94:95: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ rasa/shared/nlu/training_data/formats/luis.py:39:92: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ tests/core/channels/test_hangouts.py:37:104: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ tests/core/channels/test_hangouts.py:54:108: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ tests/core/channels/test_hangouts.py:67:97: RUF100 [*] Unused `noqa` directive (unused: `E501`)

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

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

+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py:20:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/cli/commands/dag_command.py:23:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/cli/utils.py:33:12: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_custom_weight.py:22:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_inlet_event_extra.py:26:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_latest_only_with_trigger.py:25:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_outlet_event_extra.py:26:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_params_trigger_ui.py:25:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_params_ui_tutorial.py:27:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_passing_params_via_test_command.py:22:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_skip_dag.py:22:8: ICN001 `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_time_delta_sensor_async.py:24:8: ICN001 `datetime` should be imported as `dt`
... 225 additional changes omitted for project

apache/superset (+17 -0 violations, +0 -0 fixes)

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

+ superset/common/utils/dataframe_utils.py:19:8: ICN001 `datetime` should be imported as `dt`
+ superset/config.py:1222:88: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ superset/config.py:2381:115: RUF100 [*] Unused `noqa` directive (unused: `E501`)
+ superset/extensions/metadb.py:41:8: ICN001 `datetime` should be imported as `dt`
+ superset/mcp_service/system/tool/generate_bug_report.py:29:8: ICN001 `datetime` should be imported as `dt`
+ superset/mcp_service/system/tool/health_check.py:20:8: ICN001 `datetime` should be imported as `dt`
+ superset/migrations/versions/2018-07-05_15-19_3dda56f1c4c6_migrate_num_period_compare_and_period_.py:27:8: ICN001 `datetime` should be imported as `dt`
+ superset/result_set.py:19:8: ICN001 `datetime` should be imported as `dt`
... 10 additional changes omitted for rule ICN001
... 9 additional changes omitted for project

binary-husky/gpt_academic (+2 -34 violations, +0 -0 fixes)

- crazy_functions/Academic_Conversation.py:162:28: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- crazy_functions/Paper_Reading.py:239:17: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- crazy_functions/doc_fns/AI_review_doc.py:170:47: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- crazy_functions/doc_fns/batch_file_query_doc.py:170:47: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- crazy_functions/doc_fns/conversation_doc/excel_doc.py:102:42: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- crazy_functions/doc_fns/conversation_doc/txt_doc.py:54:20: DTZ005 `datetime.datetime.now()` called without a `tz` argument
... 26 additional changes omitted for rule DTZ005
- crazy_functions/doc_fns/text_content_loader.py:235:31: DTZ006 `datetime.datetime.fromtimestamp()` called without a `tz` argument
- crazy_functions/高级功能函数模板.py:51:25: DTZ011 `datetime.date.today()` used
- crazy_functions/高级功能函数模板.py:52:23: DTZ011 `datetime.date.today()` used
+ shared_utils/fastapi_stream_server.py:327:32: UP041 [*] Replace aliased errors with `TimeoutError`
... 26 additional changes omitted for project

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

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

+ examples/server/app/weather/main.py:10:8: ICN001 `datetime` should be imported as `dt`
+ scripts/milestone.py:4:8: ICN001 `datetime` should be imported as `dt`
+ src/bokeh/_types.pyi:9:8: ICN001 `datetime` should be imported as `dt`
+ src/bokeh/core/property/datetime.py:24:8: ICN001 `datetime` should be imported as `dt`
+ src/bokeh/core/property/visual.py:25:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_aliases.py:20:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_dataspec.py:20:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_datetime.py:20:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_visual.py:21:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/bokeh/plotting/test__plot.py:20:8: ICN001 `datetime` should be imported as `dt`
... 1 additional changes omitted for project

docker/docker-py (+0 -5 violations, +0 -0 fixes)

- docs/conf.py:60:8: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- tests/integration/api_container_test.py:975:54: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- tests/integration/client_test.py:38:17: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- tests/integration/client_test.py:48:25: DTZ005 `datetime.datetime.now()` called without a `tz` argument
- tests/unit/client_test.py:29:17: DTZ001 `datetime.datetime()` called without a `tzinfo` argument

fronzbot/blinkpy (+0 -0 violations, +0 -0 fixes)


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

+ ibis/backends/bigquery/tests/system/test_client.py:4:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/bigquery/tests/unit/test_compiler.py:3:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/clickhouse/converter.py:4:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/exasol/__init__.py:4:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/exasol/converter.py:3:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/flink/utils.py:3:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/impala/tests/test_client.py:3:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/mssql/__init__.py:6:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/mysql/converter.py:3:8: ICN001 `datetime` should be imported as `dt`
+ ibis/backends/polars/compiler.py:4:8: ICN001 `datetime` should be imported as `dt`
... 26 additional changes omitted for project

jrnl-org/jrnl (+6 -0 violations, +0 -0 fixes)

+ jrnl/journals/DayOneJournal.py:5:8: ICN001 `datetime` should be imported as `dt`
+ jrnl/journals/Entry.py:4:8: ICN001 `datetime` should be imported as `dt`
+ jrnl/journals/Journal.py:4:8: ICN001 `datetime` should be imported as `dt`
+ jrnl/time.py:4:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/test_journals_folder_journal.py:4:8: ICN001 `datetime` should be imported as `dt`
+ tests/unit/test_time.py:4:8: ICN001 `datetime` should be imported as `dt`

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

+ .github/scripts/check_diff.py:16:1: I001 [*] Import block is un-sorted or un-formatted
- .github/scripts/check_extras_sync.py:9:1: I001 [*] Import block is un-sorted or un-formatted
+ .github/scripts/check_prerelease_dependencies.py:3:1: I001 [*] Import block is un-sorted or un-formatted
+ .github/scripts/get_min_versions.py:6:4: UP036 Version block is outdated for minimum Python version
+ libs/core/langchain_core/document_loaders/langsmith.py:3:8: ICN001 `datetime` should be imported as `dt`
+ libs/core/langchain_core/utils/utils.py:4:8: ICN001 `datetime` should be imported as `dt`
+ libs/core/tests/unit_tests/document_loaders/test_langsmith.py:1:8: ICN001 `datetime` should be imported as `dt`
+ libs/langchain/langchain_classic/chains/query_constructor/parser.py:1:8: ICN001 `datetime` should be imported as `dt`
+ libs/langchain/langchain_classic/retrievers/time_weighted_retriever.py:1:8: ICN001 `datetime` should be imported as `dt`
+ libs/partners/anthropic/langchain_anthropic/chat_models.py:2327:114: RUF100 [*] Unused `noqa` directive (unused: `E501`)
... 3 additional changes omitted for project

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

Changes by rule (13 rules affected)

code total + violation - violation + fix - fix
ICN001 682 682 0 0 0
DTZ001 75 0 75 0 0
I001 70 68 2 0 0
DTZ005 58 0 58 0 0
UP017 28 28 0 0 0
RUF100 18 18 0 0 0
DTZ007 5 0 5 0 0
DTZ011 4 0 4 0 0
RUF071 3 3 0 0 0
UP041 2 2 0 0 0
E501 2 1 1 0 0
DTZ006 2 0 2 0 0
UP036 1 1 0 0 0

Linter (preview)

ℹ️ ecosystem check detected linter changes. (+784 -1 violations, +0 -0 fixes in 22 projects; 36 projects unchanged)

DisnakeDev/disnake (+34 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --no-fix --output-format concise --preview

+ disnake/activity.py:5:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/audit_logs.py:35:12: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/automod.py:5:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/channel.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/embeds.py:5:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/entitlement.py:5:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/ext/commands/base_core.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/ext/commands/core.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/ext/tasks/__init__.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
+ disnake/guild.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
... 24 additional changes omitted for project

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

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

+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/cli/commands/dag_command.py:23:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/cli/utils.py:33:12: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_custom_weight.py:22:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_inlet_event_extra.py:26:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_latest_only_with_trigger.py:25:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_outlet_event_extra.py:26:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_params_trigger_ui.py:25:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_params_ui_tutorial.py:27:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_passing_params_via_test_command.py:22:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_skip_dag.py:22:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/example_dags/example_time_delta_sensor_async.py:24:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/models/taskreschedule.py:22:8: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/models/taskreschedule.py:39:12: unconventional-import-alias `datetime` should be imported as `dt`
+ airflow-core/src/airflow/models/trigger.py:19:8: unconventional-import-alias `datetime` should be imported as `dt`
... 222 additional changes omitted for project

apache/superset (+15 -0 violations, +0 -0 fixes)

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

+ superset/common/utils/dataframe_utils.py:19:8: unconventional-import-alias `datetime` should be imported as `dt`
+ superset/extensions/metadb.py:41:8: unconventional-import-alias `datetime` should be imported as `dt`
+ superset/mcp_service/system/tool/generate_bug_report.py:29:8: unconventional-import-alias `datetime` should be imported as `dt`
+ superset/mcp_service/system/tool/health_check.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ superset/migrations/versions/2018-07-05_15-19_3dda56f1c4c6_migrate_num_period_compare_and_period_.py:27:8: unconventional-import-alias `datetime` should be imported as `dt`
+ superset/result_set.py:19:8: unconventional-import-alias `datetime` should be imported as `dt`
+ superset/security/manager.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/integration_tests/celery_tests.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/integration_tests/core_tests.py:19:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/integration_tests/dao/base_dao_test.py:30:8: unconventional-import-alias `datetime` should be imported as `dt`
... 5 additional changes omitted for project

binary-husky/gpt_academic (+2 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --no-fix --output-format concise --preview

+ shared_utils/fastapi_stream_server.py:327:32: timeout-error-alias [*] Replace aliased errors with `TimeoutError`
+ shared_utils/fastapi_stream_server.py:371:32: timeout-error-alias [*] Replace aliased errors with `TimeoutError`

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

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

+ examples/server/app/weather/main.py:10:8: unconventional-import-alias `datetime` should be imported as `dt`
+ scripts/milestone.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ src/bokeh/_types.pyi:9:8: unconventional-import-alias `datetime` should be imported as `dt`
+ src/bokeh/core/property/datetime.py:24:8: unconventional-import-alias `datetime` should be imported as `dt`
+ src/bokeh/core/property/visual.py:25:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_aliases.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_dataspec.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_datetime.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/bokeh/core/property/test_visual.py:21:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/bokeh/plotting/test__plot.py:20:8: unconventional-import-alias `datetime` should be imported as `dt`
... 1 additional changes omitted for project

facebookresearch/chameleon (+2 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --no-fix --output-format concise --preview

+ chameleon/viewer/backend/data_types.py:17:7: replace-str-enum Class WSMessageType inherits from both `str` and `enum.Enum`
+ chameleon/viewer/backend/data_types.py:28:7: replace-str-enum Class ContentType inherits from both `str` and `enum.Enum`

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

ruff check --no-cache --exit-zero --no-fix --output-format concise --preview

+ ibis/backends/bigquery/tests/system/test_client.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/bigquery/tests/unit/test_compiler.py:3:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/clickhouse/converter.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/exasol/__init__.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/exasol/converter.py:3:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/flink/utils.py:3:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/impala/tests/test_client.py:3:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/mssql/__init__.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/mysql/converter.py:3:8: unconventional-import-alias `datetime` should be imported as `dt`
+ ibis/backends/polars/compiler.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
... 26 additional changes omitted for project

jrnl-org/jrnl (+6 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --no-fix --output-format concise --preview

+ jrnl/journals/DayOneJournal.py:5:8: unconventional-import-alias `datetime` should be imported as `dt`
+ jrnl/journals/Entry.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ jrnl/journals/Journal.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ jrnl/time.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/test_journals_folder_journal.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ tests/unit/test_time.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`

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

ruff check --no-cache --exit-zero --no-fix --output-format concise --preview

+ .github/scripts/check_diff.py:16:1: unsorted-imports [*] Import block is un-sorted or un-formatted
- .github/scripts/check_extras_sync.py:9:1: unsorted-imports [*] Import block is un-sorted or un-formatted
+ .github/scripts/check_prerelease_dependencies.py:3:1: unsorted-imports [*] Import block is un-sorted or un-formatted
+ .github/scripts/get_min_versions.py:6:4: outdated-version-block Version block is outdated for minimum Python version
+ libs/core/langchain_core/document_loaders/langsmith.py:3:8: unconventional-import-alias `datetime` should be imported as `dt`
+ libs/core/langchain_core/utils/utils.py:4:8: unconventional-import-alias `datetime` should be imported as `dt`
+ libs/core/tests/unit_tests/document_loaders/test_langsmith.py:1:8: unconventional-import-alias `datetime` should be imported as `dt`
+ libs/langchain/langchain_classic/chains/query_constructor/parser.py:1:8: unconventional-import-alias `datetime` should be imported as `dt`
+ libs/langchain/langchain_classic/retrievers/time_weighted_retriever.py:1:8: unconventional-import-alias `datetime` should be imported as `dt`
+ libs/partners/anthropic/langchain_anthropic/chat_models.py:6:8: unconventional-import-alias `datetime` should be imported as `dt`
... 1 additional changes omitted for rule unconventional-import-alias

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

Changes by rule (6 rules affected)

code total + violation - violation + fix - fix
unconventional-import-alias 682 682 0 0 0
replace-str-enum 69 69 0 0 0
datetime-timezone-utc 28 28 0 0 0
unsorted-imports 3 2 1 0 0
timeout-error-alias 2 2 0 0 0
outdated-version-block 1 1 0 0 0

Formatter (stable)

ℹ️ ecosystem check detected format changes. (+152 -136 lines in 29 files in 3 projects; 55 projects unchanged)

PlasmaPy/PlasmaPy (+1 -3 lines across 1 file)

src/plasmapy/formulary/braginskii.py~L364

             self.m_i = m_i
         self.Z = _grab_charge(ion, Z) * u.dimensionless_unscaled
         if self.Z < 0:
-            raise ValueError(
-                "Z is not allowed to be negative!"
-            )  # TODO: remove?  # noqa: FIX002
+            raise ValueError("Z is not allowed to be negative!")  # TODO: remove?  # noqa: FIX002
 
         # decide on the particle string for the electrons
         self.e_particle = "e-"

demisto/content (+3 -9 lines across 1 file)

Packs/MicrosoftGraphIdentityandAccess/Integrations/MicrosoftGraphIdentityandAccess/MicrosoftGraphIdentityandAccess.py~L928

     return CommandResults(readable_output="Could not create IP named location")
 
 
-def azure_ad_identity_protection_confirm_compromised_command(
-    ms_client: Client, args: dict
-) -> CommandResults:  # pragma: no cover  # noqa
+def azure_ad_identity_protection_confirm_compromised_command(ms_client: Client, args: dict) -> CommandResults:  # pragma: no cover  # noqa
     user_ids = str(args.get("user_ids")).split(",")
     data = {"userIds": user_ids}
     try:

Packs/MicrosoftGraphIdentityandAccess/Integrations/MicrosoftGraphIdentityandAccess/MicrosoftGraphIdentityandAccess.py~L940

         return CommandResults(readable_output=f"Could not compromised {user_ids!s}:\n{e}")
 
 
-def azure_

... (truncated 568 lines) ...

@ntBre
ntBre added this pull request to stack #28762 September 21, 2026 17:58
@ntBre
ntBre removed this pull request from stack #28762 September 21, 2026 18:11
@astral-sh-bot

astral-sh-bot Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Typing conformance results

No changes detected ✅

Current numbers
The percentage of diagnostics emitted that were expected errors held steady at 98.24%. The percentage of expected errors that received a diagnostic held steady at 98.24%. The number of fully passing files held steady at 134/146.

@astral-sh-bot

astral-sh-bot Bot commented Sep 22, 2026

Copy link
Copy Markdown

Memory usage report

Memory usage unchanged ✅

@astral-sh-bot

astral-sh-bot Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

ecosystem-analyzer results

No diagnostic changes detected ✅

Large timing changes:

Project Old Time New Time Change
com2ann 0.07s 0.11s +63%

Flaky changes detected. This PR summary excludes flaky changes; see the HTML report for details.

Full report with detailed diff (timing results)

@codspeed

codspeed Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Merging this PR will improve performance by 5.55%

⚡ 1 improved benchmark
✅ 243 untouched benchmarks

Performance Changes

Mode Benchmark BASE HEAD Efficiency
⚡ Simulation linter/default-rules[large/dataset.py] 20.1 ms 19.1 ms +5.55%

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing brent/0.17.0 (25e82b5) with main (73e6c48)

Open in CodSpeed

@ntBre
ntBre force-pushed the brent/0.17.0 branch 2 times, most recently from c126681 to b4c7fc2 Compare October 1, 2026 13:36
@ntBre
ntBre marked this pull request as ready for review October 1, 2026 13:36
@ntBre
ntBre requested review from a team, MichaReiser and dhruvmanila as code owners October 1, 2026 13:36
MichaReiser and others added 6 commits October 9, 2026 10:05
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[unicode-normalization](https://redirect.github.com/unicode-rs/unicode-normalization)
| workspace.dependencies | patch | `0.1.24` → `0.1.25` |

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "before 4am on Wednesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/astral-sh/ruff).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Summary
--

This is the CLI accompaniment to #27807. The main change here is showing
display-only fix diffs in
the CLI. However, display-only fixes don't have a corresponding flag
like `--unsafe-fixes`, and I
thought it would be weird to show them unconditionally when we don't do
the same for unsafe fixes,
so this PR also unconditionally renders unsafe fix diffs, even when that
flag isn't passed. We
already emit a note about the fix being unsafe, so I think it makes
sense always to show you the
fix, and make `--unsafe-fixes` enable actually applying the fix. We also
don't want to apply
display-only fixes, so enabling rendering of the fixes with
`--display-only-fixes` or similar would
also disagree with the semantics of the unsafe flag. I'm open to other
ideas here, though.

The sub-diagnostic for display-only fixes uses a higher severity than
the note for unsafe fixes and
renders in red, as shown below.

The change here also affects ty, which now has both unsafe and
display-only fixes.

I again checked what clippy and rustc do in these cases, and they don't
include any additional note or warning about the fix being unsafe:

<details><summary>Rust diagnostics</summary>
<p>

Here's a
[`clippy::needless_pass_by_value`](https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_pass_by_value)
diagnostic, which is `MaybeIncorrect` ( similar to our `Unsafe`):

```
warning: this argument is passed by value, but not consumed in the function body
 --> src/main.rs:3:15
  |
3 | fn size(data: Data) -> usize {
  |               ^^^^
  |
  = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_pass_by_value
  = note: requested on the command line with `-W clippy::needless-pass-by-value`
help: consider taking a reference instead
  |
3 | fn size(data: &Data) -> usize {
  |               +
```

and here's a rustc
[`LetLike`](https://github.com/rust-lang/rust/blob/8bab26f4f68e0e26f0bb7960be334d5b520ea452/compiler/rustc_trait_selection/src/errors.rs#L268-L288)
diagnostic, which is `has-placeholders` (similar to our `DisplayOnly`
but definitely produces invalid code in this case):

```
error[E0282]: type annotations needed for `Vec<_>`
 --> placeholder.rs:2:9
  |
2 |     let values = Vec::new();
  |         ^^^^^^   ---------- type must be known at this point
  |
help: consider giving `values` an explicit type, where the type for type parameter `T` is specified
  |
2 |     let values: Vec<T> = Vec::new();
  |               ++++++++
```

</p>
</details>

Fixes astral-sh/ty#1679

Test Plan
--

Updated existing snapshots, and some manual testing in the CLI:

<img width="965" height="400" alt="image"
src="https://github.com/user-attachments/assets/888ad79a-6853-48d4-8344-48da4af47d74"
/>

---------

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This PR updates quick-junit to
[v0.8.0](https://github.com/nextest-rs/quick-junit/releases/tag/quick-junit-0.8.0).
The original renovate description of the bump to v0.7.0 is below.

Note that I also had to update `fuzz/Cargo.lock` to get the fuzz build to run:

```console
cargo update --manifest-path fuzz/Cargo.toml thiserror@2.0.18 --precise 2.0.20
```

<hr>

This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [quick-junit](https://redirect.github.com/nextest-rs/quick-junit) |
workspace.dependencies | minor | `0.6.0` → `0.7.0` | `0.8.0` |

---

<details>
<summary>nextest-rs/quick-junit (quick-junit)</summary>

[`v0.7.0`](https://redirect.github.com/nextest-rs/quick-junit/blob/HEAD/CHANGELOG.md#070---2026-07-20)

[Compare
Source](https://redirect.github.com/nextest-rs/quick-junit/compare/quick-junit-0.6.1...quick-junit-0.7.0)

Skipped test counts are now reported via the `skipped` attribute rather
than `disabled`. For `<testsuite>`, `skipped` matches the [llg
schema](https://llg.cubic.org/docs/junit/) and the Jenkins [junit-10
schema](https://redirect.github.com/jenkinsci/xunit-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd),
as well as pytest and Maven Surefire.

- Each `<testsuite>` now emits `skipped="N"`, and the root
`<testsuites>` element now emits an aggregated `skipped="N"` count.
Previously the root didn't carry a skip count at all.
- Root-level `skipped` is a quick-junit extension. It follows the modern
JUnit convention (as documented, for example, by
[testmoapp/junitxml](https://redirect.github.com/testmoapp/junitxml))
and is similar to quick-junit's existing extensions such as `uuid`.
- `TestSuite`'s `disabled` field has been renamed to `skipped`.
- `Report` gains new public `skipped` and `disabled` fields, and
`Report::add_test_suite` now aggregates skip counts into
`Report::skipped`.

`disabled` is now modeled as a separate optional count on both `Report`
and `TestSuite`, distinct from `skipped`. (`disabled` is intended to
count tests that are disabled by design, such as googletest's
`DISABLED_`-prefixed tests. Note, however, that quick-junit doesn't have
a notion of disabled tests at the moment.)

- `Report` is now `#[non_exhaustive]`, consistent with `TestSuite` and
`TestCase`. Construct it via `Report::new` and then assign fields, so
that future field additions are non-breaking.
- Childless `<testsuite>` and `<testcase>` elements are now serialized
as self-closing tags (for example, `<testcase name="my-test"/>` rather
than `<testcase name="my-test"></testcase>`). The output is semantically
identical XML, only more compact and idiomatic. The deserializer already
accepted these self-closing forms, so serializing them means round-trip
tests now cover those parse paths.

</details>

---

📅 **Schedule**: (UTC)

- Branch creation
  - "before 4am on Wednesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/astral-sh/ruff).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0Ljc5LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImludGVybmFsIl19-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Brent Westbrook <brentrwestbrook@gmail.com>
Remove the deprecated `ruff-lsp` compatibility CI job, its dependency
group and Python constraint, and the associated `pygls` Renovate rule.
Prune ten unused packages from the root lockfile while preserving all
remaining package versions and Git revisions.

Related: #28545,
astral-sh/ruff-vscode#1170
Summary
--

This makes a few modifications to our default rule set for v0.17. As the
snapshots show, these had
already been incorporated into our preview defaults via rule
recategorization. This just ports them
back to the stable default rules.

This closes #27197, which brought the problems with the DTZ rules to our
attention. F406 being a
syntax error was raised in [this comment].

[this comment]:
#27199 (comment)

Test Plan
--

Updated snapshots
ntBre and others added 11 commits October 9, 2026 11:34
Summary
--

I wasn't really planning to do a full stabilization pass, but I quickly skimmed through `preview.rs`
and remembered that the isort pragma change was kind a bug fix but technically breaking and thought
we might want to stabilize it.

This PR stabilizes the isort pragma comment width handling introduced in #27313, along with the
related pragma handling for `E501` and `W505` from #24071. There was a comment about also
stabilizing the related formatter preview feature on the function from #24071, so that is stabilized
here too.

I'm fine holding off on this, especially if the formatter change is a better fit for the 2027 style
guide. Like I said above, I mostly wanted to stabilize the isort change, but that snowballed a bit
since the helpers were shared.

Test Plan
--

Updated existing snapshots
Update the editor documentation for the VS Code extension's transition
to always using Ruff's native language server.

Remove the retired `ruff-lsp` settings entries, links to those entries,
and obsolete setup notes while retaining migration examples and
replacement guidance. Document `ruff.nativeServer` as deprecated in Ruff
0.17 and describe `ruff.interpreter` solely in terms of executable
discovery.

Related: #28545,
astral-sh/ruff-vscode#1170

<!-- codex-thread: 01a0c3c7-f498-7682-9193-6e0e5307066b -->
Summary
--

This PR updates our default Python version to 3.11, in line with 3.10
reaching [EOL] next month, and
updates our latest Python version to 3.15. I followed last year's PR
(#20725) to find everywhere
that needed to change. Fortunately there were not as many test changes
needed as last year's
deferred annotation issues.

I also updated the language classifier in our pyproject.toml.

[EOL]: https://devguide.python.org/versions/#supported-versions

Test Plan
--

Existing tests with updated snapshots. Most of the updates were to
snapshots for TC001, TC002, and
TC003, which now default to the lazy-import fix.

After updating the snapshots, I tried to make sure we still had coverage
for whatever changed. That
meant adding a few more mdtests for the TC rules, and one small mdtest
for RUF017 to restore
coverage for the `functools.reduce` fix.
…alias (`ICN001`) (#28790)

Summary
--

Closes #28604 by adding the alias. This alias is now being recommended
in the CPython docs for
3.13+.

See
https://docs.python.org/3.13/library/datetime.html#datetime.timedelta as
one of many examples on
the page.

Test Plan
--

Updated existing test
Copy the upstream runtime and generator before the alias-lookup API changes.

Source: https://github.com/progval/unicode_names2/tree/63eda5de2bd0dd1e6243c9797efe5a84919a756b

Adapt vendored Unicode crates to the Ruff workspace

Wire the crates into the workspace, disable nightly-only targets, and configure
lint and formatting checks to preserve the vendored source. Replace the
relocated generator's broken license symlinks with copies of the licenses.
Restore registered alias spellings as lookup keys before removing loose
matching. This reverts progval/unicode_names2#61.

Reproduced in an upstream checkout at 63eda5de2bd0dd1e6243c9797efe5a84919a756b:

    git revert --no-commit 63eda5de2bd0dd1e6243c9797efe5a84919a756b

Copy generator/src/lib.rs and src/lib.rs back into the corresponding vendored
crates. The revert applies without conflicts.
Restore case-insensitive lookup with exact separator matching by reverting
progval/unicode_names2#46. Keep Unicode 17 data and the later name-decoding
performance improvements.

After reverting alias normalization in the upstream checkout:

    git revert --no-commit d6b2923654a8c65a0155419d206e24b839ccd315

Resolve the sole conflict in src/lib.rs by deleting both the loose-matching
documentation and the obsolete Cargo-enabled section, which upstream had
already removed. Copy src/lib.rs, generator/src/lib.rs, and generator/src/phf.rs
back into the corresponding vendored crates.
Use the vendored runtime and generator instead of the registry dependency,
providing Unicode 17 names with Python-compatible matching. Update workspace
dependencies and tool configuration, add parser regressions, and document how
to update Unicode data when supporting a new Python version.
@ntBre
ntBre merged commit 8f362bf into main Oct 9, 2026
94 checks passed
@ntBre
ntBre deleted the brent/0.17.0 branch October 9, 2026 16:27

This branch was previously deployed

1 inactive deployment
automations — 25e82b58 Deployed Oct 9, 2026 by ntBre via security-review / security review #91247
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Backwards-incompatible changes release Related to the release process (not for changelogs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python 3.15 Support

3 participants