Fix IMAP attachment filename collisions#67933
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
|
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
|
|
@Abdeltoto A few things need addressing before review — see our Pull Request quality criteria.
No rush. Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you. |
|
Note 🗑️ Closing stale draft · by This draft has been inactive for ~14 days. Closing to keep the queue tidy — no judgment on the change itself. Please reopen (or open a fresh PR) whenever you pick it back up, and a maintainer will be glad to take a look. Automated triage — may be imperfect. |
Closes #65870
This PR adds an
overwrite_fileoption toImapHook.download_mail_attachmentsso callers can choose whether duplicate attachment filenames overwrite existing files or are preserved with incremental suffixes.By default,
overwrite_file=Truekeeps the current behavior. Withoverwrite_file=False, existing files are preserved using suffixes such asreport_1.xlsx.Tests cover:
overwrite_file=FalseTested locally:
python -m py_compile providers/imap/src/airflow/providers/imap/hooks/imap.py providers/imap/tests/unit/imap/hooks/test_imap.pygit diff --checkI could not run the targeted pytest file locally from this sparse checkout because
airflowis not installed in this environment.Was generative AI tooling used to co-author this PR?
Generated-by: GPT-5.5 following the Airflow pull request guidelines.
Important
🛠️ Maintainer triage note for @Abdeltoto · by
@potiuk· 2026-06-17 14:51 UTCHelpful heads-up from the maintainers — please address before this PR can be reviewed:
CI image checks / Static checks). Run them locally withprek run --all-files(orpre-commit run --all-files) and push the fixes.The ball is in your court — you've been assigned to this PR. Fix the above, then mark it Ready for review.
Automated triage — may be imperfect; a maintainer takes the next look.