This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Germany made the upper case ß official. 'ß'.upper() should now return ẞ.
Type: enhancement Stage: resolved
Components: Versions: Python 3.7
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: Nosy List: Tarek Saier, lemburg, steven.daprano, vstinner
Priority: low Keywords:

Created on 2017-06-30 07:58 by Tarek Saier, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (4)
msg297351 - (view) Author: Tarek Saier (Tarek Saier) Date: 2017-06-30 07:58
I'm not sure if Python just relies on some other resource for this (i.e. a C function), but as of yesterday the correct upper case of ß is ẞ:

Official announcement in German:
http://www.rechtschreibrat.com/DOX/rfdr_PM_2017-06-29_Aktualisierung_Regelwerk.pdf
msg297358 - (view) Author: Tarek Saier (Tarek Saier) Date: 2017-06-30 08:22
Small addition after I posted in excitement and now actually read the announcement: German now allows ẞ *as well as* SS when turning ß into upper case.
msg297392 - (view) Author: Steven D'Aprano (steven.daprano) * (Python committer) Date: 2017-06-30 11:33
Although I'm not German, I'm rather pleased by this. Nevertheless I don't think we actually need to do anything yet.

I think it is more important that Python follows the standard Unicode behaviour. If and when Unicode recommend that 'ß'.upper() returns '\N{LATIN CAPITAL LETTER SHARP S}' then we should follow, until then we should treat it as no different from any other locale-specific difference. For example, 'i'.upper() returns 'I' instead of 'İ' as you would expect if you are Turkish.
msg297393 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2017-06-30 11:37
Python doesn't make politic :-) Python implements Unicode standard. Python 3.7 currently uses Unicode 10.0:

haypo@selma$ ./python
Python 3.7.0a0 (heads/master:b903067, Jun 30 2017, 11:49:25) 
>>> unicodedata.unidata_version
'10.0.0'

It seems like Unicode 10 still uses "SS":

>>> 'ß'.upper()
'SS'

The German government has to change the Unicode standard :-) Please report this "bug" to the Unicode standard :-) So I closes this issue as "third party.
History
Date User Action Args
2022-04-11 14:58:48adminsetgithub: 74993
2018-10-08 10:30:57xtreaklinkissue34928 superseder
2017-06-30 11:37:36vstinnersetstatus: open -> closed

nosy: + vstinner
messages: + msg297393

resolution: third party
stage: resolved
2017-06-30 11:33:33steven.dapranosetnosy: + steven.daprano
messages: + msg297392
2017-06-30 09:47:33skrahsetpriority: normal -> low
nosy: + lemburg

type: enhancement
versions: + Python 3.7
2017-06-30 08:22:54Tarek Saiersetmessages: + msg297358
2017-06-30 07:58:55Tarek Saiercreate