I don't think this is broken, but I do think it could be documented better. You have to read the documentation for `urlparse` to see this:
[Quote]
Following the syntax specifications in RFC 1808, urlparse recognizes a netloc only if it is properly introduced by ‘//’. Otherwise the input is presumed to be a relative URL and thus to start with a path component.
https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse
so the function is correct. You're making two errors:
- providing a relative URL "httpbin.org" and expecting it to be treated as an absolute URL;
- specifying scheme+delimiter instead of the scheme alone.
So I don't think this is a bug. urlsplit rightly accepts any arbitrary string as a scheme (it used to have a whitelist of permitted schemes, and that was a problem), and we can't assume that :/// is ONLY valid for file protocols.
Unless you come up with a convincing argument for why this is a bug, I'm going to change it to a documentation issue. The docs could do with some improvement to make it more clear, although the examples are good. |