On Wed, 18 Nov 2015 05:40:33 +1300
Robert Collins
Its included in the complete grammar, otherwise it can't be tested. Note that that the PEP body refers to the IETF document for the definition of URIs. e.g. exactly what you suggest.
What I suggest is that the grammar doesn't try to define URIs at all, and instead includes a simple rule that is a superset of URI matching. It doesn't make sense for Python packaging tools to detect what is a valid URI or not. It's not their job, and the work will probably be replicated by whatever URI-loading library they use anyway (since they will pass it the URI by string, not by individual components). The only place where URIs are used seem to be the "urlspec" rule, and probably you can accept any opaque string there. Regards Antoine.