Update dependency yarl to v1.11.1
This MR contains the following updates:
Package | Update | Change |
---|---|---|
yarl | minor |
==1.9.4 -> ==1.11.1
|
⚠ WarningSome dependencies could not be looked up. Check the warning logs for more information.
Release Notes
aio-libs/yarl (yarl)
v1.11.1
======
(2024-09-09)
Bug fixes
-
Allowed scheme replacement for relative URLs if the scheme does not require a host -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
280
, :issue:1138
. -
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: :issue:
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: :issue:
1139
.
Miscellaneous internal changes
-
Improved performance of normalizing paths -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
1137
.
v1.11.0
======
(2024-09-08)
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: :issue:
1128
.
Miscellaneous internal changes
-
Improved performance of the Cython
cached_property
implementation -- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1122
. -
Simplified computing ports by removing unnecessary code -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
1123
. -
Improved performance of encoding non IPv6 hosts -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
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: :issue:
1126
. -
Improved performance of the :meth:
URL.update_query() <yarl.URL.update_query>
method -- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1130
. -
Improved performance of processing query string changes when arguments are :class:
str
-- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1131
.
v1.10.0
======
(2024-09-06)
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 :issue:1082
.Related issues and pull requests on GitHub: :issue:
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: :issue:
774
, :issue:898
, :issue:1010
. -
The previously protected types
_SimpleQuery
,_QueryVariable
, and_Query
are now available for use externally asSimpleQuery
,QueryVariable
, andQuery
-- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1050
, :issue:1113
.
Contributor-facing changes
-
Replaced all :class:
~typing.Optional
with :class:~typing.Union
-- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1095
.
Miscellaneous internal changes
-
Significantly improved performance of parsing the network location -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
1112
. -
Added internal types to the cache to prevent future refactoring errors -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
1117
.
v1.9.11
======
(2024-09-04)
Bug fixes
-
Fixed a :exc:
TypeError
withMultiDictProxy
and Python 3.8 -- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1084
, :issue:1105
, :issue: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: :issue:
1104
.
v1.9.10
======
(2024-09-04)
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.
Related issues and pull requests on GitHub: :issue:
1039
, :issue:1082
.
Features
-
Added :attr:
~yarl.URL.absolute
which is now preferred overURL.is_absolute()
-- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1100
.
v1.9.9
=====
(2024-09-04)
Bug fixes
-
Added missing type on :attr:
~yarl.URL.port
-- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1097
.
v1.9.8
=====
(2024-09-03)
Features
-
Covered the :class:
~yarl.URL
object with types -- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1084
. -
Cache parsing of IP Addresses when encoding hosts -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
1086
.
Contributor-facing changes
-
Covered the :class:
~yarl.URL
object with types -- by :user:bdraco
.Related issues and pull requests on GitHub: :issue:
1084
.
Miscellaneous internal changes
-
Improved performance of handling ports -- by :user:
bdraco
.Related issues and pull requests on GitHub: :issue:
1081
.
v1.9.7
=====
(2024-09-01)
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 :issue:
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 :mod:asyncio
.Related issues and pull requests on GitHub: :issue:
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: :issue:
1070
.
v1.9.6
=====
(2024-08-30)
Bug fixes
-
Reverted :rfc:
3986
compatible :meth:URL.join() <yarl.URL.join>
honoring empty segments which was introduced in :issue: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: :issue:
1067
.
v1.9.5
=====
(2024-08-30)
Bug fixes
-
Joining URLs with empty segments has been changed to match :rfc:
3986
.Previously empty segments would be removed from path, breaking use-cases such as
.. code-block:: python
URL("https://web.archive.org/web/") / "https://github.com/"
Now :meth:
/ operation <yarl.URL.__truediv__>
and :meth:URL.joinpath() <yarl.URL.joinpath>
keep empty segments, but do not introduce new empty segments. e.g... code-block:: python
URL("https://example.org/") / ""
does not introduce an empty segment.
-- by :user:
commonism
and :user:youtux
Related issues and pull requests on GitHub: :issue:
1026
. -
The default protocol ports of well-known URI schemes are now taken into account during the normalization of the URL string representation in accordance with :rfc:
3986#section-3.2.3
.Specified ports are removed from the :class:
str
representation of a :class:~yarl.URL
if the port matches the scheme's default port -- by :user:commonism
.Related issues and pull requests on GitHub: :issue:
1033
. -
: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
Related issues and pull requests on GitHub: :issue:
1039
.
Removals and backward incompatible breaking changes
-
Stopped decoding
%2F
(/
) inURL.path
, as this could lead to code incorrectly treating it as a path separator -- by :user:Dreamsorcerer
.Related issues and pull requests on GitHub: :issue:
1057
. -
Dropped support for Python 3.7 -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub: :issue:
1016
.
Improved documentation
-
On the :doc:
Contributing docs <contributing/guidelines>
page, a link to theTowncrier philosophy
has been fixed.Related issues and pull requests on GitHub: :issue:
981
. -
The pre-existing :meth:
/ magic method <yarl.URL.__truediv__>
has been documented in the API reference -- by :user:commonism
.Related issues and pull requests on GitHub: :issue:
1026
.
Packaging updates and notes for downstreams
-
A flaw in the logic for copying the project directory into a temporary folder that led to infinite recursion when :envvar:
TMPDIR
was set to a project subdirectory path. This was happening in Fedora and its downstream due to the use ofpyproject-rpm-macros <https://src.fedoraproject.org/rpms/pyproject-rpm-macros>
__. It was only reproducible withpip wheel
and was not affecting thepyproject-build
users.-- by :user:
hroncok
and :user:webknjaz
Related issues and pull requests on GitHub: :issue:
992
, :issue:1014
. -
Support Python 3.13 and publish non-free-threaded wheels
Related issues and pull requests on GitHub: :issue:
1054
.
Contributor-facing changes
-
The CI/CD setup has been updated to test
arm64
wheels under macOS 14, except for Python 3.7 that is unsupported in that environment -- by :user:webknjaz
.Related issues and pull requests on GitHub: :issue:
1015
. -
Removed unused type ignores and casts -- by :user:
hauntsaninja
.Related issues and pull requests on GitHub: :issue:
1031
.
Miscellaneous internal changes
-
port
,scheme
, andraw_host
are nowcached_property
-- by :user:bdraco
.aiohttp
accesses these properties quite often, which cause :mod:urllib
to build the_hostinfo
property every time.port
,scheme
, andraw_host
are now cached properties, which will improve performance.Related issues and pull requests on GitHub: :issue:
1044
, :issue:1058
.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.