[Python-3000] PEP 3131 - the details

"Martin v. Löwis" martin at v.loewis.de
Thu May 17 19:43:50 CEST 2007

> I think this is not something that is appropriate for Python. It looks
> fairly specific to implementing a centralized name registry (say: DNS). 
> Specifically, the backwards compatibility is not appropriate, as it
> doesn't guarantee that a name valid now will be valid in the future.
> They point out that that is okay for DNS, where the rules can be applied
> at name-registration time, and previously-registered names can continue
> to be used.

Right - that would be a reason to not ban identifiers that are
considered questionable. Issuing a warning might be possible, though:
if an identifier is warned about that wasn't warned about before,
the program would still run.

It turns out that John Nagle had a different spec in mind, though:
Level 2 (Highly Restrictive) from


I think that is way too restrictive for programming languages,
as it would ban combining cyrillic letters with ASCII digits,
2.10.2.B.1 of TR#36 recommends to use the general profile
from UTS-39; 2.10.2.B.2 recommends to use NFKC and case-folding
for identifier comparison - that, again, can't apply to Python
as the language is case-sensitive.


More information about the Python-3000 mailing list