- Language level inconsistencies eliminated by proposing both
`if` and `else` as circuit-breaking operators
- PEP 532 no longer competes with PEP 505 at all
- Rich comparison chaining split out as PEP 535
- Mark E. Haase is now listed as a co-author (as I was better
able to integrate some of his earlier suggestions)
- acknowledged key feedback on the initial draft
- propose specific Grammar changes
- rename potential boolean circuit breakers so they read
better when using them to explain and/or behaviour
- operator.logical_or -> operator.true
- operator.logical_and -> operator.false
- discuss a problem Guido raised regarding inconsistency
between the proposed operator and conditional expressions
(I think it's fixable, but fixing it would have some
pretty significant consequences for the overall language)
- add today to Post-History
- if-else, and, or are now left alone
- else is introduced as a new short-circuiting binary operator
- "circuit breaking" is introduced as the operator and protocol name
- exists() builtin checks for existence
- missing() builtin checks for non-existence
- "not exists" gives a missing instance and vice-versa
- chained comparison is adjusted to use the new protocol when available
First draft of a proposal that blends PEP 335's concept of allowing
overloading of the logical binary operators with PEP 531's notion
of improved native support for tolerating missing data values.