Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/O3STZ54BRQ3T352PIMNEZWCRBGP6FE2O/
That PR seems to make \' and \" not special in general right?
I think this is a more limited proposal, to only change the behavior when \ is at the end of a string, so the only behavior difference would never receiving the error "SyntaxError: EOL while scanning string literal"
How would you know where the end of a string is? I think this is
one of those things that's easy to look at for a human and figure
out the intent, but not so easy for the lexer, without some
heuristics and backtracking. If the trailing single quote is
removed below, it changes from "backslash in the middle of a
string" to "backslash at the end of a string, followed by an
arbitrary expression.
r'\' + "foo"'
Eric
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/O3STZ54BRQ3T352PIMNEZWCRBGP6FE2O/
Names in Python are case-sensitive, yet the string prefixes are
case-/insensitive/.
Why?
--—Guido--Guido (mobile)
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
On Sat, May 28, 2022, 4:25 PM Gregory P. Smith <gr...@krypto.org> wrote:On Sat, May 28, 2022 at 12:55 PM Guido van Rossum <gu...@python.org> wrote:On Sat, May 28, 2022 at 12:11 MRABNames in Python are case-sensitive, yet the string prefixes are
case-/insensitive/.
Why?IIRC we copied this from C for numeric suffixes (0l and 0L are the same; also hex digits and presumably 0XA == 0xa) and then copied that for string prefixes without thinking about it much. I guess it’s too late to change.Given that 99.99% of code uses lower case string prefixes we could change it, it'd just take a longer deprecation cycle - you'd probably want a few releases where the upper case prefixes become an error in files without a `from __future__ import case_sensitive_quote_prefixes` rather than jumping straight from parse time DeprecationWarning to repurposing the uppercase to have a new meaning. The inertia behind doing that over the course of 5+ years is high. Implying that we'd need a compelling reason to orchestrate it. None has sprung up.
There already is a semantic meaning in one case, though not in Python proper. Some syntax highlighters, including the one used in VSCode, treat r and R differently: the former is syntax highlighted as a regex and the latter is syntax highlighted as an generic string. I have seen project-specific style guides advising to use r/R accordingly.So there is meaningful use of capital R in real-world code, and any future change to require lowercase would need to at least consider the impact on that use case.