Changelog History
-
v2.1.0 Changes
September 20, 2019โ 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__.py
into 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=True
andquote_plus=False
. -
v2.0.0 Changes
October 16, 2018โ 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.
-
v1.2.1 Changes
August 22, 2018- ๐ Fixed: Join URLs without an authority (e.g.
foo:blah
) consistently with
๐ urllib.parse.urljoin().
- ๐ Fixed: Join URLs without an authority (e.g.
-
v1.2 Changes
June 29, 2018- 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==
.
-
v1.1 Changes
May 31, 2018- ๐ 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
.
- ๐ Fixed: Support and preserve all query strings as provided. For example, preserve
-
v1.0.2 Changes
May 28, 2018- Added: strip_scheme() public function.
- Changed: Make get_scheme() and set_scheme() functions public.
- โ Added: Support all schemes without a netloc/authority, like
mailto:[email protected]
, 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.
-
v1.0.1 Changes
November 20, 2017- โ Added: Add dictionary representations of Path, Query, Fragment, and furl
objects via an asdict() method.
- โ Added: Add dictionary representations of Path, Query, Fragment, and furl
-
v1.0.0 Changes
November 20, 2017- โ Added: Test against Python 3.6.
- ๐ Changed: Bumped the version number to v1.0 to signify that furl is a mature
and stable library. Furl has been marked Production/Stable in setup.py for a
long time anyhow -- it's high time for the version number to catch up.
-
v0.5.7 Changes
March 01, 2017- ๐ Fixed: Only percent-decode percent-encoded path strings once, not twice.