hyperlink
hyperlink copied to clipboard
Non-numeric port parsing issue
The port number in the following URL is clearly malformed, but Hyperlink does this:
>>> hyperlink.URL.from_text("http://example.com: -เป_1\v").port
-11
This comes from the fact that ports are parsed with int. This leads to the following unintuitive consequences:
- Whitespace, including all of
(' ', '\t', '\v', '\r', '\n')(plus a bunch of unicode whitespace) will be stripped and from either side of the port number. -
'-'or'+'can appear just before the first digit in the port number -
'_'can appear between digits in the port number - Some unicode digits, such as
'เป'can appear in port numbers All of this violates both the RFC and the WHATWG standard.