[Distutils] FINAL DRAFT: Dependency specifier PEP

Antoine Pitrou solipsis at pitrou.net
Tue Nov 17 08:59:49 EST 2015


On Tue, 17 Nov 2015 09:46:21 +1300
Robert Collins <robertc at robertcollins.net> wrote:
> 
>     URI_reference = <URI | relative_ref>
>     URI           = scheme ':' hier_part ('?' query )? ( '#' fragment)?
>     hier_part     = ('//' authority path_abempty) | path_absolute |
> path_rootless | path_empty
>     absolute_URI  = scheme ':' hier_part ( '?' query )?
>     relative_ref  = relative_part ( '?' query )? ( '#' fragment )?
>     relative_part = '//' authority path_abempty | path_absolute |
> path_noscheme | path_empty
>     scheme        = letter ( letter | digit | '+' | '-' | '.')*
>     authority     = ( userinfo '@' )? host ( ':' port )?
>     userinfo      = ( unreserved | pct_encoded | sub_delims | ':')*
>     host          = IP_literal | IPv4address | reg_name
>     port          = digit*
>     IP_literal    = '[' ( IPv6address | IPvFuture) ']'
>     IPvFuture     = 'v' hexdig+ '.' ( unreserved | sub_delims | ':')+
>     IPv6address   = (
>                       ( h16 ':'){6} ls32
>                       | '::' ( h16 ':'){5} ls32
>                       | ( h16 )?  '::' ( h16 ':'){4} ls32
>                       | ( ( h16 ':')? h16 )? '::' ( h16 ':'){3} ls32
>                       | ( ( h16 ':'){0,2} h16 )? '::' ( h16 ':'){2} ls32
>                       | ( ( h16 ':'){0,3} h16 )? '::' h16 ':' ls32
>                       | ( ( h16 ':'){0,4} h16 )? '::' ls32
>                       | ( ( h16 ':'){0,5} h16 )? '::' h16
>                       | ( ( h16 ':'){0,6} h16 )? '::' )

It seems weird that the PEP tries to include an entire subgrammar for
URIs, including even the parsing various kinds of IP addresses.  Why not
be lenient in their detection and leave actual definition of valid URIs
to the IETF?

It doesn't seem there is any point to embed/duplicate such knowledge in
Python packaging tools.

Regards

Antoine.




More information about the Distutils-SIG mailing list