Folks,

This is now a draft PEP, and being (has been?) discussed on python-dev -- time to go there is you want more input.

https://mail.python.org/archives/list/python-dev@python.org/thread/WFEWPAOVXOGY7UDXSKMYLVWBCFSHI3VT/

-CHB


On Mon, Mar 23, 2020 at 12:37 PM Chris Angelico <rosuav@gmail.com> wrote:
On Tue, Mar 24, 2020 at 6:31 AM Andrew Barnert <abarnert@yahoo.com> wrote:
>
> On Mar 23, 2020, at 04:51, Chris Angelico <rosuav@gmail.com> wrote:
> >
> > Right, which is why for a proposal like this, it's best to start with
> > the simple and straight-forward option of case sensitivity and precise
> > matching. Removing a prefix of "a\u0301" will not remove a leading
> > "\xe1" and vice versa (just as those two strings don't compare equal).
>
> Agreed, but I think it’s not just “to start with”, but forever, or at least as long as Python strings are sequences of Unicode code points. If "Café".startswith("Cafe\u0301") is false, "Café".stripprefix("Cafe\u0301") had better not strip anything. And as long as "é" in "Cafe\u0301" and any(ch=="é" for ch in "Cafe\u0301" are false, startswith is correct.
>
> By comparison, in Swift, "Café".hasPrefix("Cafe\u{0301}") is true, because "Cafe\u{0301}" is a sequence of four Unicode scalars, the fourth of which is 'é', as opposed to Python where it’s a sequence of five Unicode code points. And of course Swift also has a slew of methods to do things like localized vs. default case-insensitive equality, substring, etc. testing, none of which Python has, or should have, as long as its strings are made of code points rather than scalars (or EGCs or whatever).
>

Maybe this would be something for the locale or unicodedata module?

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/YOIKAM6MHYVC66BCETPOANGPKVTL6NU3/
Code of Conduct: http://python.org/psf/codeofconduct/


--
Christopher Barker, PhD

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython