* PEP 646: Simplify based on typing-sig discussions
Feature removals:
* Remove `Map` (to be added in a separate PEP)
* Remove support for all forms of concatenation other than simply prefixing of a single `TypeVarTuple` (fancier forms of concatenation to also be added in a separate PEP)
Semantic changes:
* Try switching `Ts` back to mean the 'unpacked' version (such that `Ts = int, str; Tuple[Ts] = Tuple[int, str]`) to see whether everything still works. (Might revert this, pending future discussion in typing-sig.)
* PEP 646: Clarify that prefixing is not allowed in Callable
* Update PEP 646 based on discussions in typing-sig
Semantic changes:
* Switch back to `Ts` meaning types packed in a `Tuple`
* Disallow unpacked usages of `Ts`
* Unparameterised `Tensor` behaves like `Tensor[Any, ...]`
Clarifications:
* `TypeVarTuple`s are invariant
* `TypeVarTuple`s can not be bound to unknown-length types (e.g. `Tuple[int, ...]`
* `TypeVarTuple`s can not be bound to unions of types
* Empty `*args` behaves like `Tuple[()]`
* `TypeVarTuple`s can not appear in slices
Readability changes:
* Reorder some sections for better flow
* Update PEP 646 with Eric's suggestions and other tweaks
Semantic changes:
* Revert to `*args: *Ts` for new behaviour, and `*args: Tuple[*Ts]` for old behaviour
Fixes:
* Unpacking in Aliases/Ideal Array Type sections
* Various typo/grammar fixes
Other:
* State explicitly that TypeVarTuples can be used in callback protocols
Changes detected by Topy (https://github.com/intgr/topy), all changes
verified by hand, false positives have been omitted.
These range from straight-out misspellings to debatable hyphen placement.
The hyphen changes are supported by grammar manuals of style.
The initial version of the PEP entrenched the tracing mode distinction,
and was worded accordingly.
Now that tracing mode is only relevant as a historical artifact that is
being eliminated, the wording should make that clear.
Also removes a stale mention of Python 3.9.
* PEP 12: Clean up and modernize guidelines.
The peps@python.org list has been shut down, and everything is done via
GitHub pull requests. Also, we no longer need some of the older steps,
and it's easier to read if some of the obscure/unusual options are
buried away in parentheses.
Open to discussion, can split this up if it's controversial.
* PEP 12: Describe number allocation system
* Derp, best to lead people correctly! Thanks Brett
Co-authored-by: Brett Cannon <brett@python.org>
* Don't exclude non-mailing-list discussion targets
Thanks Brett
Co-authored-by: Brett Cannon <brett@python.org>
* PEP 12: Be inclusive of non-mailing-list forums again
* PEP 12: Recommend the use of GitHub's issue tracker for questions
Co-authored-by: Brett Cannon <brett@python.org>