bpo-12910: update and correct quote docstring (GH-2568)
Fixes some mistakes and misleadings in the quote function docstring:
- reserved chars are never actually used by quote code, unreserved chars are
- reserved chars were wrong and incomplete
- mentioned that use-case is not minimal quoting wrt. RFC, but cautious quoting
(cherry picked from commit 750d74fac5
)
Co-authored-by: Jörn Hees <joernhees@users.noreply.github.com>
This commit is contained in:
parent
86f0354fcb
commit
796698adf5
|
@ -780,25 +780,32 @@ def quote(string, safe='/', encoding=None, errors=None):
|
||||||
"""quote('abc def') -> 'abc%20def'
|
"""quote('abc def') -> 'abc%20def'
|
||||||
|
|
||||||
Each part of a URL, e.g. the path info, the query, etc., has a
|
Each part of a URL, e.g. the path info, the query, etc., has a
|
||||||
different set of reserved characters that must be quoted.
|
different set of reserved characters that must be quoted. The
|
||||||
|
quote function offers a cautious (not minimal) way to quote a
|
||||||
|
string for most of these parts.
|
||||||
|
|
||||||
RFC 3986 Uniform Resource Identifiers (URI): Generic Syntax lists
|
RFC 3986 Uniform Resource Identifier (URI): Generic Syntax lists
|
||||||
the following reserved characters.
|
the following (un)reserved characters.
|
||||||
|
|
||||||
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
|
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
||||||
"$" | "," | "~"
|
reserved = gen-delims / sub-delims
|
||||||
|
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
|
||||||
|
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
|
||||||
|
/ "*" / "+" / "," / ";" / "="
|
||||||
|
|
||||||
Each of these characters is reserved in some component of a URL,
|
Each of the reserved characters is reserved in some component of a URL,
|
||||||
but not necessarily in all of them.
|
but not necessarily in all of them.
|
||||||
|
|
||||||
Python 3.7 updates from using RFC 2396 to RFC 3986 to quote URL strings.
|
The quote function %-escapes all characters that are neither in the
|
||||||
Now, "~" is included in the set of reserved characters.
|
unreserved chars ("always safe") nor the additional chars set via the
|
||||||
|
safe arg.
|
||||||
|
|
||||||
By default, the quote function is intended for quoting the path
|
The default for the safe arg is '/'. The character is reserved, but in
|
||||||
section of a URL. Thus, it will not encode '/'. This character
|
typical usage the quote function is being called on a path where the
|
||||||
is reserved, but in typical usage the quote function is being
|
existing slash characters are to be preserved.
|
||||||
called on a path where the existing slash characters are used as
|
|
||||||
reserved characters.
|
Python 3.7 updates from using RFC 2396 to RFC 3986 to quote URL strings.
|
||||||
|
Now, "~" is included in the set of unreserved characters.
|
||||||
|
|
||||||
string and safe may be either str or bytes objects. encoding and errors
|
string and safe may be either str or bytes objects. encoding and errors
|
||||||
must not be specified if string is a bytes object.
|
must not be specified if string is a bytes object.
|
||||||
|
|
Loading…
Reference in New Issue