Releases: gruns/furl
furl v2.1.4
Furl v2.1.2.
Fixed: Support Python 3.9's changed urllib.parse.urljoin() behavior.
- < py3.9:
furl('wss://slrp.com/').join('foo:1')->'wss://slrp.com/foo:1' - >= py3.9:
furl('wss://slrp.com/').join('foo:1')->'foo:1'
Changed: Drop semicolon query delimiters. See https://bugs.python.org/issue42967.
Changed: Drop support for EOL Python 3.4 and Python 3.5.
Furl v2.1.1.
Fixed: Export metadata variables (furl.__title__, furl.__version__, etc).
Added: scheme, host, netloc, and origin as parameters to furl.remove().
Changed: Homogenize parameter order across furl.add(), furl.set(), and furl.remove().
Changed: furl.origin can be assigned None. This has the same behavior as furl.remove(origin=True).
Furl v2.1.0.
-
Added: a
dont_quote=parameter toQuery.encode()and a
query_dont_quote=parameter tofurl.tostr()that exempt valid query
characters from being percent-encoded, either in their entirety with
dont_quote=True, or selectively withdont_quote=<string>, like
dont_quote='/?@_'. -
Changed: Move package info from
__init__.pyinto the more standard
__version__.py. -
Fixed: Support Unicode usernames and passwords in Python 2.
-
Fixed: Update orderedmultdict to v1.0.1 to resolve a DeprecationWarning.
-
Fixed: Encode
'/'consistently in query strings across both
quote_plus=Trueandquote_plus=False.
Furl v2.0.0
-
Added: All URL components (
scheme,host,path, etc) tofurl()'s constructor as
keyword arguments. E.g.f = furl(scheme='http', host='host', path='/lolsup'). -
Changed: furl.truediv() and Path.truediv() now mirror Pathlib.truediv()'s
behavior and return a new instance. The original instance is no longer modified.
Old behavior:f = furl('1'); f / '2' -> str(f) == '1'. New behavior:
f = furl('1'); f /= '2' -> str(f) == '1/2'. -
Fixed: Path.load() now accepts Path instances, e.g.
f.path.load(Path('hi')). -
Removed: Support for Python 2.6, which reached EOL on 2013-10-29.
Furl v1.2.1
- Fixed: Join URLs without an authority (e.g.
foo:blah) consistently with
urllib.parse.urljoin().
Furl v1.2
- Added: Path segment appending via the division operator (__truediv__()).
- Changed: Bump orderedmultidict dependency to v1.0.
- Changed: Check code style with flake8 instead of pycodestyle.
- Changed: Percent-encode all non-unreserved characters in Query key=value pairs,
including valid query characters (e.g.=,?, etc). Old encoding:
?url=http://foo.com/; new encoding:?url=http%3A%2F%2Ffoo.com%2F. Equal
signs remain decoded in query values where the key is empty to allow for, and
preserve, queries like?==3==.
Furl v1.1
- Fixed: Support and preserve all query strings as provided. For example, preserve
the query&&==ofhttp://foo.com?&&==as-is. Empty key=value pairs are
stored as('', None)in Query.params, e.g.[('', None), ('', None)]for the
query&. - Changed: Don't encode equal signs (
=) in query values if the key is empty.
That is, allow and preserve queries like?==3==while also percent encoding
equal signs in query values with an associted key, as expected. E.g.
?a=1%3D1.
Furl v1.0.2
- Added: strip_scheme() public function.
- Changed: Make get_scheme() and set_scheme() functions public.
- Added: Support all schemes without a netloc/authority, like
mailto:hi@email.com, without an explicit whitelist of such schemes
(e.g.tel:,sms:,mailto:, etc). - Fixed: Restore furl.url's setter method. E.g.
furl.url = 'http://www.foo.com/'. - Removed: Support for Python 3.3, which reached EOL on 2017-09-29.
Furl v1.0.1
- Added: Add dictionary representations of Path, Query, Fragment, and furl
objects via an asdict() method.