typing
typing copied to clipboard
Add additional examples about TypeIs
This is a followup from discussion on discourse, and specifically this example which was constructed with the help of many going back and forth to determine a situation that could have a parallel in real world code, and which was possibly unsound. To not overly deter users from using this when it is appropriate, counter examples of "tolerably safe" narrowing functions that operate on generic types are included.
I'm not sure why the typing council decision label was added to this, this is purely an extended example of existing behavior to help better document the sharp edges that already exist on a typing feature and not a specification change, which does not appear to need one.
Quoting: https://github.com/python/typing-council/blob/main/README.md
The Council makes decisions in response to issues opened on this repo. Such decisions include:
- Substantive changes to the specification for the type system
- Recommendations on PEPs that relate to typing
If there's anything I need to do to have this proceed, please let me know.
This PR is to the spec, but I'm not sure why this text needs to be in the spec; it doesn't seem to specify any additional behavior. It might be a better fit for the guide on type narrowing that I added recently.
Reviewing the proposed addition, I don't think this belongs in the typing spec. The typing spec is intended to specify how the type system works and how type checkers must behave. The proposed addition doesn't serve this purpose. It is instead directed at users of TypeIs. It therefore belongs in the typing guide, not the typing spec.
Hmm. I thought placing it next to the existing example of behavior around TypeIs would make more sense, but I can retool the PR to move it to the guide, thanks for the feedback.
I appreciate that you have other priorities, but if the scope of the changes after 9 months since last interaction are that you want additional tradeoffs noted (which I've noted a specific disagreement with) and slightly different organization, if the organization is that big a deal, please just provide a suggested change, merge it yourself and then amend organization, or close it, I don't want to spend the time for a continued back and forth for a minor change in organizing this months later, and you clearly have something in mind here that you could do more quickly yourself than the back and forth on it would require.