diff options
author | Tim Graham <timograham@gmail.com> | 2019-10-18 13:07:20 (GMT) |
---|---|---|
committer | Senthil Kumaran <skumaran@gatech.edu> | 2019-10-18 13:07:20 (GMT) |
commit | 5a88d50ff013a64fbdb25b877c87644a9034c969 (patch) | |
tree | 48ee40eae4bce36fadf31bca4790f097ac65e999 /Lib/urllib | |
parent | fbe3c76c7ce1eec887d332d801d3784212cc0f73 (diff) | |
download | cpython-5a88d50ff013a64fbdb25b877c87644a9034c969.zip cpython-5a88d50ff013a64fbdb25b877c87644a9034c969.tar.gz cpython-5a88d50ff013a64fbdb25b877c87644a9034c969.tar.bz2 |
bpo-27657: Fix urlparse() with numeric paths (#661)
* bpo-27657: Fix urlparse() with numeric paths
Revert parsing decision from bpo-754016 in favor of the documented
consensus in bpo-16932 of how to treat strings without a // to
designate the netloc.
* bpo-22891: Remove urlsplit() optimization for 'http' prefixed inputs.
Diffstat (limited to 'Lib/urllib')
-rw-r--r-- | Lib/urllib/parse.py | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py index 3a38dc1..31fd7e1 100644 --- a/Lib/urllib/parse.py +++ b/Lib/urllib/parse.py @@ -431,31 +431,11 @@ def urlsplit(url, scheme='', allow_fragments=True): netloc = query = fragment = '' i = url.find(':') if i > 0: - if url[:i] == 'http': # optimize the common case - url = url[i+1:] - if url[:2] == '//': - netloc, url = _splitnetloc(url, 2) - if (('[' in netloc and ']' not in netloc) or - (']' in netloc and '[' not in netloc)): - raise ValueError("Invalid IPv6 URL") - if allow_fragments and '#' in url: - url, fragment = url.split('#', 1) - if '?' in url: - url, query = url.split('?', 1) - _checknetloc(netloc) - v = SplitResult('http', netloc, url, query, fragment) - _parse_cache[key] = v - return _coerce_result(v) for c in url[:i]: if c not in scheme_chars: break else: - # make sure "url" is not actually a port number (in which case - # "scheme" is really part of the path) - rest = url[i+1:] - if not rest or any(c not in '0123456789' for c in rest): - # not a port number - scheme, url = url[:i].lower(), rest + scheme, url = url[:i].lower(), url[i+1:] if url[:2] == '//': netloc, url = _splitnetloc(url, 2) |