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]

Reply via email to