Alexander Belopolsky writes:
On Thu, Aug 1, 2013 at 9:15 PM, Stephen J. Turnbull <stephen@xemacs.org> wrote:
Alexander Belopolsky writes:
>>> This misses the point of adding the code point type prefix.
Not really. That would just pass the responsibility for enforcing consistency to linters, instead of the translator.
I have not seen a linter yet that would suggest that "\x41" should be written as "A".
Irrelevant. All I suggest the linter do is the "is \N{control-0x21} consistent in the sense that U+0021 is a control character?" check. That's what you said is the point. I just want that check done outside of the compiler. >> You can't just make this a syntax error because a code point may
be reserved one Python version and a letter in another, depending on which versions of the Unicode tables are being used by those versions of Python.
That's true, but why would you write \N{reserved-NNNN} instead of \uNNNN to begin with?
I wouldn't. The problem isn't writing "\N{reserved-50000}". It's the other way around: I want to *write* "\N{control-50000}" which expresses my intent in Python 3.5 and not have it blow up in Python 3.4 which uses an older UCD where U+50000 is unassigned.
With the possible exception or reserved-, on a rare occasion when you want to be explicit about the character type, it is useful to be strict.
As explained above, strictness is not backward compatible with older versions of the UCD that might be in use in older versions of Python.