* PEP 597: Apply streightforward grammar and syntax fixes
* PEP 597: Copyedit prose for clarity, polish and to avoid repetition
* PEP 597: Use accurate terminology for options, params and arguments
* PEP 597: Add statements several places to clarify unclear meaning
* PEP 597: Revise docstring and warning text in text_encoding function
* PEP 597: Revise and clarify points based on author feedback
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
* Check created date exists & matches format, and fix non-conforming
* Automatically fix mixed EoLs on checkin and in one PEP
* Add rst-directive-colons check, fix issue it found and refine regex
* Change name of `MATCH_CLASS` to `MATCH_POSITIONAL`.
* Drop `__attributes__` and use `__match_args__` instead.
* For `MATCH_DEFAULT`, `__match_args__` acts a map from positions to names.
* For `MATCH_POSITIONAL`, `__match_args__` acts a map from names to positions.
* Change semantics of `MATCH_DEFAULT` when match class patterns to those of PEP 634.
* Update translations.
* Further expand examples
This is the more-or-less final version now. I'll do one last read-through to confirm everything's consistent, then post in typing-sig to confirm it's ready for the Steering Committee.
Semantic changes:
* Remove support for type variable tuples in `Union`. Apparently the implementation would be tricky in Pyre because of special-casing around `Union`. That could be evidence that it would be tricky in Mypy and pytype. Since we don't have a specific use-case in mind, I think this is fine.
* Support concatenation in `Callable`. Pradeep pointed ou that `ParamSpec` doesn't cover all potential use-cases because it doesn't support concatenating suffixes (in turn because `ParamSpec`s can contain keyword arguments, and concatenation is positional).
Readability changes:
* Remove the section on a full `Array` example. We've moved the important thing here - an explicit confirmation that `Array` can be generic in both datatype and shape - to the beginning of the PEP to make it more obvious. We've removed the `Ndim` thing after someone pointed out that e.g. `Ndim[Literal[2]]` would be incompatible with `Shape[Any, Any]`; I just don't think it's going to work. All that's left is the aliases, which we've moved into the Aliases section itself.
Other changes:
* Fill out Backwards Compatibility section.
* Reference initial CPython implementation.