Skip to content

Fix airflowctl date parameters rejecting every input value - #71328

Open
DHBhensdadia wants to merge 1 commit into
apache:mainfrom
DHBhensdadia:fix-airflowctl-date-parsing
Open

Fix airflowctl date parameters rejecting every input value#71328
DHBhensdadia wants to merge 1 commit into
apache:mainfrom
DHBhensdadia:fix-airflowctl-date-parsing

Conversation

@DHBhensdadia

Copy link
Copy Markdown

_python_type_from_string maps OpenAPI parameter annotations to the argparse type= callable used by auto-generated commands. datetime.date was mapped to the class itself, but argparse calls that callable with the raw string from the command line and date.__init__ expects three integers, so every value was rejected:

$ airflowctl dagrun list --partition-date-gte 2026-07-01
argument --partition-date-gte: invalid date value: '2026-07-01'

The message reads as a complaint about the format, but no input can succeed.

_is_primitive_type accepts datetime.date, and DagRunOperations.list declares partition_date_gte and partition_date_lte as datetime.date | None, so this affects the shipped CLI. The hand-written commands in dag_command.py already parse these values with date.fromisoformat; the generated path had no equivalent.

This adds iso_date_type alongside the existing json_dict_type and wires it into the mapping, so a valid value is parsed into a date and an invalid one reports the format that is actually expected.

datetime.datetime has the same root cause but is left untouched here, since #70249 and #70250 are already open against it. The remaining constructor entries (bytes, list, tuple, set) are not reachable today, as no operation is annotated with them.

related: #70232


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Claude Code (Opus 5) following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {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.

Auto-generated commands derive their argparse ``type=`` callable from the
OpenAPI parameter annotation. For ``datetime.date`` that callable was the
class itself, which takes three integers rather than a string, so no value
a user could type was ever accepted. argparse surfaced the resulting
TypeError as "invalid date value", which reads as a formatting complaint
and gives no hint that the option cannot work at all.
@boring-cyborg

boring-cyborg Bot commented Aug 8, 2026

Copy link
Copy Markdown

Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide
Here are some useful points:

  • Pay attention to the quality of your code (ruff, mypy and type annotations). Our prek-hooks will help you with that.
  • In case of a new feature add useful documentation (in docstrings or in docs/ directory). Adding a new operator? Check this short guide Consider adding an example Dag that shows how users should use it.
  • Consider using Breeze environment for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
  • Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
  • Please follow ASF Code of Conduct for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
  • Be sure to read the Airflow Coding style.
  • Always keep your Pull Requests rebased, otherwise your build might fail due to changes not related to your commits.
    Apache Airflow is a community-driven project and together we are making it better 🚀.
    In case of doubts contact the developers at:
    Mailing List: dev@airflow.apache.org
    Slack: https://s.apache.org/airflow-slack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant