The example with `Concrete` and `Template` is supposed to highlight that adding properties to a protocol in the implementation of a method is not supported, and does not add to the required signature of the protocol.
However, this also has the problem of `Concrete` not being a `Template` anyway because it is missing that `method`.
* PEP 594: deprecate telnetlib
* PEP 594: Deprecate email compat32 APIs
* Add 'added in' years to table
* Reference other PEPs, update sections for cgi and audio mods
* Fix typo and table entries (thanks Jelle and Brett)
* Fix _init_main=0 example: set config._init_main to 0!
* Document special builds needed by some speficic options like
show_alloc_count.
* Specify that preconfiguration only requires command line arguments
for the "Python Configuration" (not for "Isolated Configuration").
* Add my initial draft
* PEP 593: update PEP structure and add content.
* PEP 593: Push updates
* PEP 593: expand the "Improving Roundup" section and move it to the top.
* PEP 593: expand the "Roundup advantages" and "Migration considerations" sections.
* PEP 595 (was 593): expand and reword some sections.
* PEP 595: rename file
* PEP 595: remove Discussion-To header, fix formatting of Author header.
As discussed on the typing-sig mailing list, the currently specified behavior for `# type: ignore` on a line by itself has remained mostly unimplemented and doesn't seem useful. Instead, the PEP now mandates a syntax for ignoring all errors in a specific file, which is more obviously useful.
I considered adding a sentence like "Individual type checkers may add additional syntax for silencing errors", but it didn't seem particularly useful since type checkers in general are free to add extensions to what PEP 484 specifies.
While I was at it I added a reference to PEP 526 to an out-of-date sentence adjacent to the modified paragraph.
- new design discussion section to cover the requirement that the
semantics of locals() itself at function scope be left alone
- propose a C level API that exactly matches Python level
frame.f_locals semantics
- other minor text formatting and wording updates
Changing the frame API semantics based on whether or not a
tracing function is active is tricky to implement and hard
to document clearly, so this simplifies the proposal by
instead having the frame API always expose a write-through
proxy at function scope, and restricting the dynamic
snapshot behaviour to the locals() builtin.