
On Thu, Nov 18, 2021 at 8:00 AM Barry Warsaw <barry@python.org> wrote:
Does PEP 563 or 649 satisfy static and dynamic typing needs?
In the interest of full transparency, we want to let the Python community know that the Steering Council continues to discuss PEP 563 (Postponed Evaluation of Annotations) and PEP 649 (Deferred Evaluation Of Annotations Using Descriptors). We have concluded that we lack enough detailed information to make a decision in favor of either PEP. As we see it, adopting either PEP 563 or PEP 649 as the default would be insufficient. They will not fully resolve the existing problems these PEPs intend to fix, will break some existing code, and likely don’t address all the use cases and requirements across the static and dynamic typing constituents. We are also uncertain as to the best migration path from the current state of affairs.
Defer decision on PEP 563 and 649 in 3.11
As such, at this time, the only reasonable path forward that the SC sees is to defer the decision in Python 3.11 again, essentially keeping the 3.10 status quo. We know that this is far from ideal, but it’s also the safest path since we can’t clearly make the situation better, and we don’t have confidence that either PEP solves the problems once and for all. Pragmatically, we don’t want to make the situation worse, and we really don’t want to find ourselves back here again in a couple of releases because we overlooked an important requirement for a set of users.
In my opinion, we can agree that we can not make PEP 563 default in the future because it will break too many use cases. Anyone against making a statement that "PEP 563 will never be the default behavior"? Then, we do not need to decide "PEP 563 or 649". We can focus on whether we can replace "stock semantics + opt-in PEP 563" with PEP 649 or not. Regards, -- Inada Naoki <songofacandy@gmail.com>