[airflow-ctl/v0-1-test] airflowctl: make required CLI params position…#67387
Open
bugraoz93 wants to merge 1 commit into
Open
[airflow-ctl/v0-1-test] airflowctl: make required CLI params position…#67387bugraoz93 wants to merge 1 commit into
bugraoz93 wants to merge 1 commit into
Conversation
…al, keep optional as --flag (apache#66768) * airflowctl: make required CLI params positional, keep optional as --flag Auto-generated commands such as ``airflowctl dags get-details`` now accept required primitive parameters positionally: airflowctl dags get-details my_dag_id instead of the previous ``--dag-id my_dag_id`` form. Optional parameters and booleans keep the ``--flag`` form. This follows the dev-list lazy consensus on airflowctl parameter style. A parameter is considered required when the operation method declares it without a default and without ``| None`` in its annotation. Datamodel- expanded body fields are unaffected — they are not "parameters of the operation method" in this sense and continue to use ``--flag``. * tests: tmp_path fixture for command-factory; positional form for integration tests Two follow-ups to the positional-required-args change: - ``TestCommandFactory._save_temp_operations_py`` previously wrote a shared ``test_command.py`` in cwd; under pytest-xdist that file is raced by workers, so ``next(arg for arg in jobs_list_args if ...)`` in one test could see content written by another and raise ``StopIteration``. Helper now takes the per-test ``tmp_path`` and returns the full path. The classmethod ``teardown_method`` that removed the shared file is no longer needed (pytest auto-cleans ``tmp_path``). - The Airflow CTL PROD-image integration tests still invoked converted parameters with the old ``--flag value`` form (e.g. ``--variable-key=X``, ``--section X --option Y``, ``--dag-id=example_bash_operator``). Updated each occurrence to the positional form that the regenerated CLI now expects. Optional parameters (``--logical-date``, ``--run-after``, ``--is-paused``, ``--state``, ``--limit``, etc.) stay as ``--flag``. Signed-off-by: 1fanwang <1fannnw@gmail.com> --------- (cherry picked from commit ffa426b) Co-authored-by: Stefan Wang <1fannnw@gmail.com> Signed-off-by: 1fanwang <1fannnw@gmail.com>
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…al, keep optional as --flag (#66768)
Auto-generated commands such as
airflowctl dags get-detailsnow accept required primitive parameters positionally:instead of the previous
--dag-id my_dag_idform. Optional parameters and booleans keep the--flagform.This follows the dev-list lazy consensus on airflowctl parameter style.
A parameter is considered required when the operation method declares it without a default and without
| Nonein its annotation. Datamodel- expanded body fields are unaffected — they are not "parameters of the operation method" in this sense and continue to use--flag.Two follow-ups to the positional-required-args change:
TestCommandFactory._save_temp_operations_pypreviously wrote a sharedtest_command.pyin cwd; under pytest-xdist that file is raced by workers, sonext(arg for arg in jobs_list_args if ...)in one test could see content written by another and raiseStopIteration. Helper now takes the per-testtmp_pathand returns the full path. The classmethodteardown_methodthat removed the shared file is no longer needed (pytest auto-cleanstmp_path).The Airflow CTL PROD-image integration tests still invoked converted parameters with the old
--flag valueform (e.g.--variable-key=X,--section X --option Y,--dag-id=example_bash_operator). Updated each occurrence to the positional form that the regenerated CLI now expects. Optional parameters (--logical-date,--run-after,--is-paused,--state,--limit, etc.) stay as--flag.(cherry picked from commit ffa426b)
Was generative AI tooling used to co-author this PR?
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.