<p dir="ltr">>= would certainty not be a valid name. So I agree with you about restrictions except possibly on the set of allowed characters.</p>
<p dir="ltr">Of course the weird names aren't on pypi yet, the current tooling has bad Unicode support.</p>
<p dir="ltr">Pep 3131 pretty much sums up this issue and the objections exactly, if you search/replace. It begins:</p>
<p dir="ltr">Python code is written by many people in the world who are not familiar with the English language, or even well-acquainted with the Latin writing system. Such developers often desire to define classes and functions with names in their native languages, rather than having to come up with an (often incorrect) English translation of the concept they want to name. By using identifiers in their native language, code clarity and maintainability of the code among speakers of that language improves.</p>

<div class="gmail_quote">On May 15, 2013 12:11 AM, "Donald Stufft" <<a href="mailto:donald@stufft.io">donald@stufft.io</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On May 14, 2013, at 11:44 PM, Donald Stufft <<a href="mailto:donald@stufft.io">donald@stufft.io</a>> wrote:<br>
<br>
> Currently PyPI allows a project name to contain basically any character except for a /. However most of the installation tooling doesn't not work with this wide of a namespace. It also opens up several avenues for spoofing attack where you trick people into copy and pasting an install command that looks like you're installing one package but you are really installing a different one.<br>

><br>
> So I propose that moving forward that all projects/distributions are required to have names using only urlsafe characters. Specifically letters, decimal digits, hyphen, period, and underscore.<br>
><br>
> Doing this would allow a better experience for people attempting to install packages, it would allow tool authors to test and make sure they can install all valid packages etc.<br>
><br>
> -----------------<br>
> Donald Stufft<br>
> PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA<br>
><br>
> _______________________________________________<br>
> Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
> <a href="http://mail.python.org/mailman/listinfo/distutils-sig" target="_blank">http://mail.python.org/mailman/listinfo/distutils-sig</a><br>
<br>
For more information data using a few days old copy of the database on Crate:<br>
<br>
SELECT COUNT(*) FROM packages WHERE name ~* '^[-a-z0-9_\.]+$';<br>
 count<br>
-------<br>
 30422<br>
<br>
SELECT COUNT(*) FROM packages WHERE name !~* '^[-a-z0-9_\.]+$';<br>
 count<br>
-------<br>
   225<br>
<br>
So this would disallow 225 (0.7%) and would not affect 30422 (99.3%) total names that are currently in use on PyPI.<br>
<br>
-----------------<br>
Donald Stufft<br>
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA<br>
<br>
<br>_______________________________________________<br>
Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/distutils-sig" target="_blank">http://mail.python.org/mailman/listinfo/distutils-sig</a><br>
<br></blockquote></div>