ctalkington / python-ipp

Asynchronous Python client for Internet Printing Protocol (IPP)
MIT License
36 stars 20 forks source link

Update dependency yarl to v1.14.0 #603

Closed renovate[bot] closed 4 weeks ago

renovate[bot] commented 4 weeks ago

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
yarl 1.9.4 -> 1.14.0 age adoption passing confidence

Release Notes

aio-libs/yarl (yarl) ### [`v1.14.0`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1140) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.13.1...v1.14.0) \====== *(2024-10-08)* ## Packaging updates and notes for downstreams - Switched to using the :mod:`propcache ` package for property caching \-- by :user:`bdraco`. The :mod:`propcache ` package is derived from the property caching code in :mod:`yarl` and has been broken out to avoid maintaining it for multiple projects. *Related issues and pull requests on GitHub:* :issue:`1169`. ## Contributor-facing changes - Started testing with Hypothesis -- by :user:`webknjaz` and :user:`bdraco`. Special thanks to :user:`Zac-HD` for helping us get started with this framework. *Related issues and pull requests on GitHub:* :issue:`860`. ## Miscellaneous internal changes - Improved performance of :py:meth:`~yarl.URL.is_default_port` when no explicit port is set -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* :issue:`1168`. - Improved performance of converting :class:`~yarl.URL` to a string when no explicit port is set -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* :issue:`1170`. - Improved performance of the :py:meth:`~yarl.URL.origin` method -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* :issue:`1175`. - Improved performance of encoding hosts -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* :issue:`1176`. *** ### [`v1.13.1`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1131) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.13.0...v1.13.1) \====== *(2024-09-27)* ## Miscellaneous internal changes - Improved performance of calling :py:meth:`~yarl.URL.build` with `authority` -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* :issue:`1163`. *** ### [`v1.13.0`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1130) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.12.1...v1.13.0) \====== *(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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1121) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.12.0...v1.12.1) \====== *(2024-09-23)* No significant changes. *** ### [`v1.12.0`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1120) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.11.1...v1.12.0) \====== *(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` (`/`) in `URL.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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1111) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.11.0...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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1110) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.10.0...v1.11.0) \====== *(2024-09-08)* ## Features - Added :meth:`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() ` 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() ` 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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1100) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.11...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() ` was introduced in :issue:`1082`. *Related issues and pull requests on GitHub:* :issue:`1118`. ## Features - Added :meth:`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 as `SimpleQuery`, `QueryVariable`, and `Query` -- 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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1911) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.10...v1.9.11) \====== *(2024-09-04)* ## Bug fixes - Fixed a :exc:`TypeError` with `MultiDictProxy` 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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#1910) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.9...v1.9.10) \====== *(2024-09-04)* ## Bug fixes - :meth:`URL.join() ` has been changed to match :rfc:`3986` and align with :meth:`/ operation ` and :meth:`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 `\_). Due to the semantics of :meth:`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 over `URL.is_absolute()` -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* :issue:`1100`. *** ### [`v1.9.9`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#199) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.8...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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#198) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.7...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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#197) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.6...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 of `http`, `https`, `wss`, or `ws` -- 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 from `aiohttp` was adapted to replace the internal `cached_property` implementation. *Related issues and pull requests on GitHub:* :issue:`1070`. *** ### [`v1.9.6`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#196) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.5...v1.9.6) \===== *(2024-08-30)* ## Bug fixes - Reverted :rfc:`3986` compatible :meth:`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`](https://redirect.github.com/aio-libs/yarl/blob/HEAD/CHANGES.rst#195) [Compare Source](https://redirect.github.com/aio-libs/yarl/compare/v1.9.4...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 ` and :meth:`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() ` has been changed to match :rfc:`3986` and align with :meth:`/ operation ` and :meth:`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 `\_). Due to the semantics of :meth:`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` (`/`) in `URL.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 ` 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 ` 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 `\__. It was only reproducible with `pip wheel` and was not affecting the `pyproject-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`, and `raw_host` are now `cached_property` -- by :user:`bdraco`. `aiohttp` accesses these properties quite often, which cause :mod:`urllib` to build the `_hostinfo` property every time. `port`, `scheme`, and `raw_host` are now cached properties, which will improve performance. *Related issues and pull requests on GitHub:* :issue:`1044`, :issue:`1058`. ***

Configuration

📅 Schedule: Branch creation - "before 4am" in timezone America/Chicago, Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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.

codecov[bot] commented 4 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.36%. Comparing base (e9dfe18) to head (f02da96). Report is 1 commits behind head on master.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #603 +/- ## ========================================== - Coverage 94.59% 94.36% -0.23% ========================================== Files 9 9 Lines 870 870 Branches 121 121 ========================================== - Hits 823 821 -2 - Misses 20 22 +2 Partials 27 27 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.