Releases: aio-libs/yarl
1.11.1
Bug fixes
-
Allowed scheme replacement for relative URLs if the scheme does not require a host -- by :user:
bdraco
. -
Allowed empty host for URL schemes other than the special schemes listed in the WHATWG URL spec -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1136.
Features
-
Loosened restriction on integers as query string values to allow classes that implement
__int__
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#1139.
Miscellaneous internal changes
-
Improved performance of normalizing paths -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1137.
1.11.0
Features
-
Added :meth:
URL.extend_query() <yarl.URL.extend_query>
method, which can be used to extend parameters without replacing same named keys -- by :user:bdraco
.This method was primarily added to replace the inefficient hand rolled method currently used in
aiohttp
.Related issues and pull requests on GitHub:
#1128.
Miscellaneous internal changes
-
Improved performance of the Cython
cached_property
implementation -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1122. -
Simplified computing ports by removing unnecessary code -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1123. -
Improved performance of encoding non IPv6 hosts -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1125. -
Improved performance of :meth:
URL.build() <yarl.URL.build>
when the path, query string, or fragment is an empty string -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1126. -
Improved performance of the :meth:
URL.update_query() <yarl.URL.update_query>
method -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1130. -
Improved performance of processing query string changes when arguments are :class:
str
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#1131.
1.10.0
Bug fixes
-
Fixed joining a path when the existing path was empty -- by :user:
bdraco
.A regression in :meth:
URL.join() <yarl.URL.join>
was introduced in #1082.Related issues and pull requests on GitHub:
#1118.
Features
-
Added :meth:
URL.without_query_params() <yarl.URL.without_query_params>
method, to drop some parameters from query string -- by :user:hongquan
.Related issues and pull requests on GitHub:
#774, #898, #1010. -
The previously protected types
_SimpleQuery
,_QueryVariable
, and_Query
are now available for use externally asSimpleQuery
,QueryVariable
, andQuery
-- by :user:bdraco
.
Contributor-facing changes
-
Replaced all :class:
~typing.Optional
with :class:~typing.Union
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#1095.
Miscellaneous internal changes
-
Significantly improved performance of parsing the network location -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1112. -
Added internal types to the cache to prevent future refactoring errors -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1117.
1.9.11
Bug fixes
-
Fixed a :exc:
TypeError
withMultiDictProxy
and Python 3.8 -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1084, #1105, #1107.
Miscellaneous internal changes
-
Improved performance of encoding hosts -- by :user:
bdraco
.Previously, the library would unconditionally try to parse a host as an IP Address. The library now avoids trying to parse a host as an IP Address if the string is not in one of the formats described in :rfc:
3986#section-3.2.2
.Related issues and pull requests on GitHub:
#1104.
1.9.10
Bug fixes
-
:meth:
URL.join() <yarl.URL.join>
has been changed to match
:rfc:3986
and align with
:meth:/ operation <yarl.URL.__truediv__>
and :meth:URL.joinpath() <yarl.URL.joinpath>
when joining URLs with empty segments.
Previously :py:func:urllib.parse.urljoin
was used,
which has known issues with empty segments
(python/cpython#84774 <https://github.com/python/cpython/issues/84774>
_).Due to the semantics of :meth:
URL.join() <yarl.URL.join>
, joining an
URL with scheme requires making it relative, prefixing with./
... code-block:: pycon
URL("https://web.archive.org/web/").join(URL("./https://github.com/aio-libs/yarl"))
URL('https://web.archive.org/web/https://github.com/aio-libs/yarl')Empty segments are honored in the base as well as the joined part.
.. code-block:: pycon
URL("https://web.archive.org/web/https://").join(URL("github.com/aio-libs/yarl"))
URL('https://web.archive.org/web/https://github.com/aio-libs/yarl')-- by :user:
commonism
This change initially appeared in 1.9.5 but was reverted in 1.9.6 to resolve a problem with query string handling.
Features
-
Added :attr:
~yarl.URL.absolute
which is now preferred overURL.is_absolute()
-- by :user:bdraco
.Related issues and pull requests on GitHub:
#1100.
1.9.9
1.9.8
Features
-
Covered the :class:
~yarl.URL
object with types -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1084. -
Cache parsing of IP Addresses when encoding hosts -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1086.
Contributor-facing changes
-
Covered the :class:
~yarl.URL
object with types -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1084.
Miscellaneous internal changes
-
Improved performance of handling ports -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1081.
1.9.8rc0
Features
-
Covered the :class:
~yarl.URL
object with types -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1084. -
Cache parsing of IP Addresses when encoding hosts -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1086.
Contributor-facing changes
-
Covered the :class:
~yarl.URL
object with types -- by :user:bdraco
.Related issues and pull requests on GitHub:
#1084.
Miscellaneous internal changes
-
Improved performance of handling ports -- by :user:
bdraco
.Related issues and pull requests on GitHub:
#1081.
1.9.7
Removals and backward incompatible breaking changes
-
Removed support :rfc:
3986#section-3.2.3
port normalization when the scheme is not one ofhttp
,https
,wss
, orws
-- by :user:bdraco
.Support for port normalization was recently added in #1033 and contained code that would do blocking I/O if the scheme was not one of the four listed above. The code has been removed because this library is intended to be safe for usage with
asyncio
.Related issues and pull requests on GitHub:
#1076.
Miscellaneous internal changes
-
Improved performance of property caching -- by :user:
bdraco
.The
reify
implementation fromaiohttp
was adapted to replace the internalcached_property
implementation.Related issues and pull requests on GitHub:
#1070.
1.9.6
Bug fixes
-
Reverted :rfc:
3986
compatible :meth:URL.join() <yarl.URL.join>
honoring empty segments which was introduced in #1039.This change introduced a regression handling query string parameters with joined URLs. The change was reverted to maintain compatibility with the previous behavior.
Related issues and pull requests on GitHub:
#1067.