mitre88 opened a new pull request, #70488: URL: https://github.com/apache/airflow/pull/70488
Three operators in `google/cloud/operators/gcs.py` applied logic to template fields in `__init__`, before Jinja rendering: - `GCSListObjectsOperator` warned about the deprecated `delimiter` at Dag parse time — a templated `delimiter` that renders empty warned anyway. The warning now fires in `execute()` based on the rendered value. - `GCSDeleteObjectsOperator` enforced the `objects`/`prefix` mutual exclusion at construction time, rejecting templated combinations before rendering. The check now runs at the top of `execute()` (also normalizing the `super().__init__` call to run first). - `GCSFileTransformOperator` resolved `destination_bucket`/`destination_object` fallbacks to source in `__init__`, so a templated source was copied un-rendered into the destination. The fallback now resolves in `execute()` (and in `get_openlineage_facets_on_start`, which can run before execute). All three classes are removed from the exemption list. Note: `TestGCSDeleteObjectsOperator::test_get_openlineage_facets_on_start[objects]` fails identically on current `main` in my environment (pre-existing, unrelated). related: #70296 --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Fable 5) Generated-by: Claude Code (Fable 5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
