Repository navigation
Make suppress_logs_and_warning CLI decorator return the wrapped result - #72600
Eason09053360 wants to merge 1 commit into
Conversation
Every other decorator stacked on CLI command functions (action_cli, providers_configuration_loaded, provide_session) passes the wrapped function's return value through, but suppress_logs_and_warning called the function on both its branches without returning it, so the caller always received None. No command currently returns a value from its own body, so this has no user-visible effect today; it removes a trap for any future command that does, and keeps the decorator transparent as functools.wraps semantics imply.
60cbc63 to
394d7c5
Compare
|
Hello @Eason09053360 - thank you for your contributions to Apache Airflow! The Airflow community has introduced a limit of 5 open pull requests at a time for contributors without write access to the repository. You currently have 33 open pull requests, so - as a one-time step of introducing the limit - we closed the ones where maintainers have not engaged yet:
These pull requests stay open because maintainers are already engaged in them - they count towards your limit:
This is not a judgement of you or of your changes. We never told contributors before that opening many pull requests at once was a problem, so there is nothing to feel bad about - and nothing is lost: your branches, commits and the review history stay where they are. What we ask you to do is to make your first prioritization decision: choose which of the pull requests above matter most to you, and reopen them (up to 5 open at a time, including the ones still open) with the "Reopen pull request" button or While your pull requests are waiting for review, the most valuable thing you can do is help in other ways - reviewing other contributors' pull requests, helping with issues, and taking part in the discussions on the devlist and Slack. Why we introduced the limit, what it means for you and how to reopen or restore a pull request is explained in https://github.com/apache/airflow/blob/main/contributing-docs/32_open_pull_request_limit.rst. Drafted-by: Claude Code (Opus 5); reviewed by @potiuk before posting |
suppress_logs_and_warninginairflow/utils/cli.pycalled the wrapped function on both of its branches (--verboseand not) without returning the result, so every caller receivedNone. The other decorators stacked on CLI command functions (action_cli,providers_configuration_loaded,provide_session) all pass the return value through, so this one was the odd one out.This is a decorator-transparency fix, not a user-facing bug fix: none of the 49 commands currently decorated (core CLI commands plus the FAB provider's
users/rolescommands) returns a value from its own body, andairflow/__main__.pydiscards the result ofargs.func(args). Nothing observable changes today; the change removes a trap for any future command that does return something.The
else:block is flattened because ruff ruleRET505(enabled inpyproject.toml) rejects anelseafterreturn. The body of that block is unchanged apart from the addedreturn; the restore logic infinallystill runs before the value is returned.A parametrized test covers both branches and fails on
main. It carries@pytest.mark.non_db_test_overridebecause the test module is markeddb_testat module level while this test needs no database.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Fable 5.1) following the guidelines