Hey everyone, TL;DR; Just to make sure, this is all universally accepted - I am calling for a lazy consensus on global enabling the PEP 563 "from __future__ import annotations".
I went a bit ahead of the consensus and prepared a lot of PRs - once again apologies for any distress and "pressure" it could have caused with 47 PRs opened (understandably that was a bit overwhelming). Discussion and comments about it here: in https://lists.apache.org/thread/81fr042s5d3v17v83bpo24tnrr2pp0fp Summary of the proposal: * all the changes were automatically done by pyupgrade (which we already use and have pre-commit configured for). * after reviewing and approving all the PRS I will combine them in two: one for airflow and one for providers * I will merge those and cherry-pick the airflow one (not the provider one as we don't modify/cherry-pick any changes there) for v2-4 branch (carefully avoiding dragging-along unwanted changes from main) to make cherry-picking easier for all 2.4* releases. * the benefits of it is simpler and more future-proof typing (for example `list[str]` instead of `List[str]` and `| None` rather than `Optional`) . This is the default typing style in Python 3.9+ already. * pyupgrade pre-commit will take care about automatically converting typing for those who will continue using pre-3.9 style of typing - thus also providing a nice learning experience for everyone (either they will run pre-commit and it will be converted for them automatically or if they don't - they will get CI pre-commit feedback). * After the change we will have a consistent typing approach in the whole codebase. Since Ash had __actually_ reviewed the changes, I will merge those changes tomorrow if I don't hear any opposition (the sooner, the better it will be for the upcoming 2.4.0 rc and safer to avoid any unwanted changes to drag-along). This discussion had been going on for a while, and it had no major opposition (except maybe the mechanics of introducing the change) and I think this is the right call to make. J.
