Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.9.4
->==1.13.1
Release Notes
aio-libs/yarl (yarl)
v1.13.1
Compare Source
======
(2024-09-27)
Miscellaneous internal changes
Improved performance of calling :py:meth:
~yarl.URL.build
withauthority
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1163
.v1.13.0
Compare Source
======
(2024-09-26)
Bug fixes
Started rejecting ASCII hostnames with invalid characters. For host strings that
look like authority strings, the exception message includes advice on what to do
instead -- by :user:
mjpieters
.Related issues and pull requests on GitHub:
:issue:
880
, :issue:954
.Fixed IPv6 addresses missing brackets when the :class:
~yarl.URL
was converted to a string -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1157
, :issue:1158
.Features
Added :attr:
~yarl.URL.host_subcomponent
which returns the :rfc:3986#section-3.2.2
host subcomponent -- by :user:bdraco
.The only current practical difference between :attr:
~yarl.URL.raw_host
and :attr:~yarl.URL.host_subcomponent
is that IPv6 addresses are returned bracketed.Related issues and pull requests on GitHub:
:issue:
1159
.v1.12.1
Compare Source
======
(2024-09-23)
No significant changes.
v1.12.0
Compare Source
======
(2024-09-23)
Features
Added :attr:
~yarl.URL.path_safe
to be able to fetch the path without%2F
and%25
decoded -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1150
.Removals and backward incompatible breaking changes
Restore decoding
%2F
(/
) inURL.path
-- by :user:bdraco
.This change restored the behavior before :issue:
1057
.Related issues and pull requests on GitHub:
:issue:
1151
.Miscellaneous internal changes
Improved performance of processing paths -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1143
.v1.11.1
Compare Source
======
(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
Compare Source
======
(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
Compare Source
======
(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
Compare Source
======
(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
Compare Source
======
(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 anURL with scheme requires making it relative, prefixing with
./
... code-block:: pycon
Empty segments are honored in the base as well as the joined part.
.. code-block:: pycon
-- 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
Compare Source
=====
(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
Compare Source
=====
(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
Compare Source
=====
(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
Compare Source
=====
(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
Compare Source
=====
(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 anURL with scheme requires making it relative, prefixing with
./
... code-block:: pycon
Empty segments are honored in the base as well as the joined part.
.. code-block:: pycon
-- 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 the
Towncrier 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 of
pyproject-rpm-macros <https://src.fedoraproject.org/rpms/pyproject-rpm-macros>
__. It wasonly reproducible with
pip 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
wheelsunder 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
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.