Skip to content

Stabilize FURB110#22926

Merged
ntBre merged 1 commit intobrent/0.15.0from
brent/furb110
Jan 29, 2026
Merged

Stabilize FURB110#22926
ntBre merged 1 commit intobrent/0.15.0from
brent/furb110

Conversation

@ntBre
Copy link
Contributor

@ntBre ntBre commented Jan 28, 2026

Docs and tests looked good

Docs and tests looked good
@ntBre ntBre added this to the v0.15 milestone Jan 28, 2026
@ntBre ntBre added the rule Implementing or modifying a lint rule label Jan 28, 2026
@ntBre ntBre requested review from amyreese and dylwil3 January 28, 2026 18:43
@astral-sh-bot
Copy link

astral-sh-bot bot commented Jan 28, 2026

ruff-ecosystem results

Linter (stable)

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

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

+ disnake/guild.py:5614:19: FURB110 [*] Replace ternary `if` expression with `or` operator
+ disnake/guild.py:5615:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ disnake/user.py:227:38: FURB110 [*] Replace ternary `if` expression with `or` operator

apache/airflow (+95 -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/common/trigger_dag.py:172:12: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/api_fastapi/core_api/services/public/task_instances.py:189:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/api_fastapi/core_api/services/public/task_instances.py:190:26: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/config_command.py:991:19: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/config_command.py:992:17: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/config_command.py:994:23: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/config_command.py:995:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/config_command.py:996:23: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/config_command.py:997:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/cli/commands/dag_command.py:356:12: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/dag_processing/dagbag.py:322:30: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/dag_processing/dagbag.py:323:29: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/executors/executor_utils.py:43:23: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/executors/executor_utils.py:44:19: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/executors/executor_utils.py:44:62: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/jobs/triggerer_job_runner.py:1084:20: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/jobs/triggerer_job_runner.py:1085:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/jobs/triggerer_job_runner.py:1086:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/jobs/triggerer_job_runner.py:1108:20: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/src/airflow/utils/dot_renderer.py:148:69: FURB110 [*] Replace ternary `if` expression with `or` operator
+ airflow-core/tests/unit/ti_deps/deps/test_mapped_task_upstream_dep.py:252:17: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/breeze/src/airflow_breeze/commands/ci_commands.py:674:23: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/breeze/src/airflow_breeze/commands/release_management_commands.py:2659:28: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/breeze/src/airflow_breeze/commands/workflow_commands.py:193:26: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/breeze/src/airflow_breeze/utils/custom_param_types.py:151:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/breeze/src/airflow_breeze/utils/custom_param_types.py:172:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/breeze/src/airflow_breeze/utils/custom_param_types.py:221:26: FURB110 [*] Replace ternary `if` expression with `or` operator
+ dev/react-plugin-tools/bootstrap.py:95:18: FURB110 [*] Replace ternary `if` expression with `or` operator
+ devel-common/src/sphinx_exts/docs_build/spelling_checks.py:117:36: FURB110 Replace ternary `if` expression with `or` operator
+ helm-tests/tests/helm_tests/airflow_core/test_api_server.py:50:27: FURB110 [*] Replace ternary `if` expression with `or` operator
... 65 additional changes omitted for project

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

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

+ superset/commands/database/sync_permissions.py:92:13: FURB110 [*] Replace ternary `if` expression with `or` operator
+ superset/commands/database/uploaders/csv_reader.py:389:25: FURB110 [*] Replace ternary `if` expression with `or` operator
+ superset/commands/database/uploaders/csv_reader.py:493:17: FURB110 Replace ternary `if` expression with `or` operator
+ superset/commands/database/uploaders/csv_reader.py:498:17: FURB110 Replace ternary `if` expression with `or` operator
+ superset/commands/database/uploaders/csv_reader.py:509:17: FURB110 Replace ternary `if` expression with `or` operator
+ superset/commands/database/uploaders/excel_reader.py:72:26: FURB110 Replace ternary `if` expression with `or` operator
+ superset/commands/dataset/importers/v0.py:145:9: FURB110 [*] Replace ternary `if` expression with `or` operator
+ superset/commands/report/execute.py:915:17: FURB110 [*] Replace ternary `if` expression with `or` operator
+ superset/commands/sql_lab/results.py:97:17: FURB110 [*] Replace ternary `if` expression with `or` operator
+ superset/mcp_service/chart/schemas.py:466:16: FURB110 [*] Replace ternary `if` expression with `or` operator
... 17 additional changes omitted for project

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

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

+ src/bokeh/resources.py:617:19: FURB110 [*] Replace ternary `if` expression with `or` operator
+ src/bokeh/settings.py:374:25: FURB110 [*] Replace ternary `if` expression with `or` operator
+ src/bokeh/util/compiler.py:474:12: FURB110 [*] Replace ternary `if` expression with `or` operator
+ tests/support/util/examples.py:169:22: FURB110 [*] Replace ternary `if` expression with `or` operator
+ tests/support/util/examples.py:175:26: FURB110 [*] Replace ternary `if` expression with `or` operator
+ tests/support/util/examples.py:178:26: FURB110 [*] Replace ternary `if` expression with `or` operator

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

+ ibis/backends/polars/compiler.py:353:49: FURB110 [*] Replace ternary `if` expression with `or` operator

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

+ libs/langchain/langchain_classic/chains/mapreduce.py:66:16: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/langchain/langchain_classic/chains/mapreduce.py:75:16: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_dynamic_tools.py:123:24: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_dynamic_tools.py:131:30: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/partners/anthropic/langchain_anthropic/llms.py:293:28: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/partners/anthropic/langchain_anthropic/llms.py:329:28: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/partners/anthropic/langchain_anthropic/llms.py:369:28: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/partners/anthropic/langchain_anthropic/llms.py:414:28: FURB110 [*] Replace ternary `if` expression with `or` operator
+ libs/partners/chroma/langchain_chroma/vectorstores.py:1366:27: FURB110 Replace ternary `if` expression with `or` operator
+ libs/partners/chroma/langchain_chroma/vectorstores.py:1367:31: FURB110 Replace ternary `if` expression with `or` operator
... 3 additional changes omitted for project

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

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

+ zerver/lib/events.py:943:34: FURB110 [*] Replace ternary `if` expression with `or` operator
+ zerver/lib/events.py:947:34: FURB110 [*] Replace ternary `if` expression with `or` operator
+ zerver/webhooks/taiga/view.py:320:22: FURB110 [*] Replace ternary `if` expression with `or` operator

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

+ astropy/io/ascii/misc.py:104:16: FURB110 [*] Replace ternary `if` expression with `or` operator
+ astropy/io/fits/hdu/table.py:1273:35: FURB110 [*] Replace ternary `if` expression with `or` operator
+ astropy/logger.py:438:20: FURB110 [*] Replace ternary `if` expression with `or` operator
+ astropy/logger.py:533:28: FURB110 [*] Replace ternary `if` expression with `or` operator
+ astropy/utils/data_info.py:185:15: FURB110 [*] Replace ternary `if` expression with `or` operator
+ astropy/wcs/wcs.py:622:33: FURB110 [*] Replace ternary `if` expression with `or` operator

Changes by rule (1 rules affected)

code total + violation - violation + fix - fix
FURB110 154 154 0 0 0

Linter (preview)

✅ ecosystem check detected no linter changes.

@ntBre
Copy link
Contributor Author

ntBre commented Jan 28, 2026

I was honestly kind of skeptical of this rule, thinking that it might be too pedantic or opinionated, but it's really narrowly scoped to exactly the case expr if expr else something_else, where I think using or instead is actually a pretty clear improvement. All of the ecosystem results in the comment look like true positives.

@ntBre ntBre merged commit 882babf into brent/0.15.0 Jan 29, 2026
42 checks passed
@ntBre ntBre deleted the brent/furb110 branch January 29, 2026 14:06
@ntBre ntBre mentioned this pull request Jan 29, 2026
3 tasks
ntBre added a commit that referenced this pull request Feb 3, 2026
Docs and tests looked good
ntBre added a commit that referenced this pull request Feb 3, 2026
Docs and tests looked good
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.

3 participants