Skip to content

Commit

Permalink
Don't force encode +
Browse files Browse the repository at this point in the history
Before:

>>> URL(scheme='https', host='foo', query={'f+o o': 'b+a r'}).to_text()
'https://foo/?f%2Bo o=b%2Ba r'

After:

>>> URL(scheme='https', host='foo', query={'f+o o': 'b+a r'}).to_text()
'https://foo/?f+o o=b+a r'

If spaces pass unencoded, surely + can.
  • Loading branch information
twm committed Dec 29, 2020
1 parent b69be9e commit a9eba07
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/hyperlink/_url.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ def __nonzero__(self):
_SCHEMELESS_PATH_DELIMS = _ALL_DELIMS - _SCHEMELESS_PATH_SAFE
_FRAGMENT_SAFE = _UNRESERVED_CHARS | _PATH_SAFE | set(u"/?")
_FRAGMENT_DELIMS = _ALL_DELIMS - _FRAGMENT_SAFE
_QUERY_VALUE_SAFE = _UNRESERVED_CHARS | _FRAGMENT_SAFE - set(u"&+")
_QUERY_VALUE_SAFE = _UNRESERVED_CHARS | _FRAGMENT_SAFE - set(u"&")
_QUERY_VALUE_DELIMS = _ALL_DELIMS - _QUERY_VALUE_SAFE
_QUERY_KEY_SAFE = _UNRESERVED_CHARS | _QUERY_VALUE_SAFE - set(u"=")
_QUERY_KEY_DELIMS = _ALL_DELIMS - _QUERY_KEY_SAFE
Expand Down Expand Up @@ -931,9 +931,9 @@ class URL(object):
https://example.com/hello/world
The constructor runs basic type checks. All strings are expected
to be decoded (:class:`unicode` in Python 2). All arguments are
optional, defaulting to appropriately empty values. A full list of
constructor arguments is below.
to be text (:class:`str` in Python 3, :class:`unicode` in Python 2). All
arguments are optional, defaulting to appropriately empty values. A full
list of constructor arguments is below.
Args:
scheme: The text name of the scheme.
Expand All @@ -943,9 +943,9 @@ class URL(object):
it is known. See the ``SCHEME_PORT_MAP`` and
:func:`register_default_port` for more info.
path: A tuple of strings representing the slash-separated parts of the
path.
path, each percent-encoded.
query: The query parameters, as a dictionary or as an sequence of
key-value pairs.
percent-encoded key-value pairs.
fragment: The fragment part of the URL.
rooted: A rooted URL is one which indicates an absolute path.
This is True on any URL that includes a host, or any relative URL
Expand Down

0 comments on commit a9eba07

Please sign in to comment.