This is an automated email from the ASF dual-hosted git repository. ephraimanierobi pushed a commit to branch sync_v2_10_test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 9d82d8d3f69b3744dcd82150977fd3993d6e6614 Author: Wei Lee <[email protected]> AuthorDate: Mon Sep 2 17:10:08 2024 +0800 ci: improve check_deferrable_default script to cover positional variables (#41942) --- scripts/ci/pre_commit/check_deferrable_default.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scripts/ci/pre_commit/check_deferrable_default.py b/scripts/ci/pre_commit/check_deferrable_default.py index 8373385f0d..1e1fd9c7a6 100755 --- a/scripts/ci/pre_commit/check_deferrable_default.py +++ b/scripts/ci/pre_commit/check_deferrable_default.py @@ -74,14 +74,21 @@ def iter_check_deferrable_default_errors(module_filename: str) -> Iterator[str]: for node in init_method_nodes: args = node.args - arguments = reversed([*args.args, *args.kwonlyargs]) + arguments = reversed([*args.args, *args.posonlyargs, *args.kwonlyargs]) defaults = reversed([*args.defaults, *args.kw_defaults]) - for argument, default in zip(arguments, defaults): - if argument is None or default is None: + for argument, default in itertools.zip_longest(arguments, defaults): + # argument is not deferrable + if argument is None or argument.arg != "deferrable": continue - if argument.arg != "deferrable" or _is_valid_deferrable_default(default): + + # argument is deferrable, but comes with no default value + if default is None: + yield f"{module_filename}:{argument.lineno}" continue - yield f"{module_filename}:{default.lineno}" + + # argument is deferrable, but the default value is not valid + if not _is_valid_deferrable_default(default): + yield f"{module_filename}:{default.lineno}" def main() -> int:
