bpo-37970: update and improve urlparse and urlsplit doc-strings (GH-16458)

This commit is contained in:
idomic 2020-02-16 14:17:58 -05:00 committed by GitHub
parent a5cbab552d
commit c33bdbb20c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -366,9 +366,23 @@ del _fix_result_transcoding
def urlparse(url, scheme='', allow_fragments=True): def urlparse(url, scheme='', allow_fragments=True):
"""Parse a URL into 6 components: """Parse a URL into 6 components:
<scheme>://<netloc>/<path>;<params>?<query>#<fragment> <scheme>://<netloc>/<path>;<params>?<query>#<fragment>
Return a 6-tuple: (scheme, netloc, path, params, query, fragment).
Note that we don't break the components up in smaller bits The result is a named 6-tuple with fields corresponding to the
(e.g. netloc is a single string) and we don't expand % escapes.""" above. It is either a ParseResult or ParseResultBytes object,
depending on the type of the url parameter.
The username, password, hostname, and port sub-components of netloc
can also be accessed as attributes of the returned object.
The scheme argument provides the default value of the scheme
component when no scheme is found in url.
If allow_fragments is False, no attempt is made to separate the
fragment component from the previous component, which can be either
path or query.
Note that % escapes are not expanded.
"""
url, scheme, _coerce_result = _coerce_args(url, scheme) url, scheme, _coerce_result = _coerce_args(url, scheme)
splitresult = urlsplit(url, scheme, allow_fragments) splitresult = urlsplit(url, scheme, allow_fragments)
scheme, netloc, url, query, fragment = splitresult scheme, netloc, url, query, fragment = splitresult
@ -417,9 +431,24 @@ def _checknetloc(netloc):
def urlsplit(url, scheme='', allow_fragments=True): def urlsplit(url, scheme='', allow_fragments=True):
"""Parse a URL into 5 components: """Parse a URL into 5 components:
<scheme>://<netloc>/<path>?<query>#<fragment> <scheme>://<netloc>/<path>?<query>#<fragment>
Return a 5-tuple: (scheme, netloc, path, query, fragment).
Note that we don't break the components up in smaller bits The result is a named 5-tuple with fields corresponding to the
(e.g. netloc is a single string) and we don't expand % escapes.""" above. It is either a SplitResult or SplitResultBytes object,
depending on the type of the url parameter.
The username, password, hostname, and port sub-components of netloc
can also be accessed as attributes of the returned object.
The scheme argument provides the default value of the scheme
component when no scheme is found in url.
If allow_fragments is False, no attempt is made to separate the
fragment component from the previous component, which can be either
path or query.
Note that % escapes are not expanded.
"""
url, scheme, _coerce_result = _coerce_args(url, scheme) url, scheme, _coerce_result = _coerce_args(url, scheme)
allow_fragments = bool(allow_fragments) allow_fragments = bool(allow_fragments)
key = url, scheme, allow_fragments, type(url), type(scheme) key = url, scheme, allow_fragments, type(url), type(scheme)