Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-fakeredis for openSUSE:Factory checked in at 2025-06-26 11:34:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-fakeredis (Old) and /work/SRC/openSUSE:Factory/.python-fakeredis.new.7067 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fakeredis" Thu Jun 26 11:34:30 2025 rev:30 rq:1288470 version:2.30.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-fakeredis/python-fakeredis.changes 2025-06-24 20:46:06.424738025 +0200 +++ /work/SRC/openSUSE:Factory/.python-fakeredis.new.7067/python-fakeredis.changes 2025-06-26 11:34:47.962528162 +0200 @@ -1,0 +2,9 @@ +Tue Jun 24 11:41:38 UTC 2025 - Markéta Machová <mmach...@suse.com> + +- Update to 2.30.1 + * Move LICENSE file to fakeredis/ on build + * Show warning for deprecated parameter only if parameter is included + in instantiation + * Replace deprecated event_loop fixture + +------------------------------------------------------------------- Old: ---- fakeredis-2.30.0-gh.tar.gz New: ---- fakeredis-2.30.1-gh.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-fakeredis.spec ++++++ --- /var/tmp/diff_new_pack.XBY5Dm/_old 2025-06-26 11:34:48.694558530 +0200 +++ /var/tmp/diff_new_pack.XBY5Dm/_new 2025-06-26 11:34:48.698558696 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-fakeredis -Version: 2.30.0 +Version: 2.30.1 Release: 0 Summary: Fake implementation of redis API for testing purposes License: BSD-3-Clause AND MIT @@ -57,7 +57,6 @@ %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} -%python_expand rm %{buildroot}%{$python_sitelib}/LICENSE %check export LANG="en_US.UTF8" ++++++ fakeredis-2.30.0-gh.tar.gz -> fakeredis-2.30.1-gh.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/docs/about/changelog.md new/fakeredis-py-2.30.1/docs/about/changelog.md --- old/fakeredis-py-2.30.0/docs/about/changelog.md 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/docs/about/changelog.md 2025-06-19 19:52:14.000000000 +0200 @@ -7,6 +7,17 @@ toc_depth: 2 --- +## v2.30.1 - 2025-06-20 + +### 🐛 Bug Fixes + +- Move `LICENSE` file to fakeredis/ on build #395 +- Show warning for deprecated parameter only if parameter is included in instantiation #384 + +### 🧰 Maintenance + +- Replace deprecated event_loop fixture @mgorny #396 + ## v2.30.0 - 2025-06-11 ### 🚀 Features diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/fakeredis/_connection.py new/fakeredis-py-2.30.1/fakeredis/_connection.py --- old/fakeredis-py-2.30.0/fakeredis/_connection.py 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/fakeredis/_connection.py 2025-06-19 19:52:14.000000000 +0200 @@ -1,14 +1,12 @@ -import inspect import queue import time -import uuid import warnings from typing import Tuple, Any, List, Optional, Set import redis from fakeredis._fakesocket import FakeSocket -from fakeredis._helpers import FakeSelector +from fakeredis._helpers import FakeSelector, convert_args_to_redis_init_kwargs from . import _msgs as msgs from ._server import FakeBaseConnectionMixin, FakeServer, VersionType, ServerType from .typing import Self @@ -123,16 +121,7 @@ lua_modules: Optional[Set[str]] = None, **kwargs: Any, ) -> None: - # Interpret the positional and keyword arguments according to the version of redis in use. - parameters = list(inspect.signature(redis.Redis.__init__).parameters.values())[1:] - # Convert args => kwargs - kwargs.update({parameters[i].name: args[i] for i in range(len(args))}) - kwargs.setdefault("host", uuid.uuid4().hex) - kwds = { - p.name: kwargs.get(p.name, p.default) - for ind, p in enumerate(parameters) - if p.default != inspect.Parameter.empty - } + kwds = convert_args_to_redis_init_kwargs(redis.Redis, *args, **kwargs) kwds["server"] = server if not kwds.get("connection_pool", None): charset = kwds.get("charset", None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/fakeredis/_helpers.py new/fakeredis-py-2.30.1/fakeredis/_helpers.py --- old/fakeredis-py-2.30.0/fakeredis/_helpers.py 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/fakeredis/_helpers.py 2025-06-19 19:52:14.000000000 +0200 @@ -1,10 +1,14 @@ +import inspect import re import threading import time +import uuid import weakref from collections import defaultdict from collections.abc import MutableMapping -from typing import Any, Set, Callable, Dict, Optional, Iterator, AnyStr +from typing import Any, Set, Callable, Dict, Optional, Iterator, AnyStr, Type + +import redis class SimpleString: @@ -253,3 +257,29 @@ @staticmethod def check_is_ready_for_command(_: Any) -> bool: return True + + +def _get_args_to_warn() -> Set[str]: + closure = redis.Redis.__init__.__closure__ + if closure is None: + return set() + for cell in closure: + value = cell.cell_contents + if isinstance(value, list) and len(value) > 0: + return set(value) + return set() + + +def convert_args_to_redis_init_kwargs(redis_class: Type[redis.Redis], *args: Any, **kwargs: Any) -> Dict[str, Any]: + """Interpret the positional and keyword arguments according to the version of redis in use""" + parameters = list(inspect.signature(redis_class.__init__).parameters.values())[1:] + args_to_warn = _get_args_to_warn() + # Convert args => kwargs + kwargs.update({parameters[i].name: args[i] for i in range(len(args))}) + kwargs.setdefault("host", uuid.uuid4().hex) + kwds = { + p.name: kwargs.get(p.name, p.default) + for ind, p in enumerate(parameters) + if p.default != inspect.Parameter.empty and (p.name not in args_to_warn or p.name in kwargs) + } + return kwds diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/fakeredis/aioredis.py new/fakeredis-py-2.30.1/fakeredis/aioredis.py --- old/fakeredis-py-2.30.0/fakeredis/aioredis.py 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/fakeredis/aioredis.py 2025-06-19 19:52:14.000000000 +0200 @@ -1,8 +1,6 @@ from __future__ import annotations import asyncio -import inspect -import uuid import warnings from typing import Union, Optional, Any, Callable, Iterable, Tuple, List, Set @@ -13,7 +11,7 @@ from . import _fakesocket from . import _helpers from . import _msgs as msgs -from ._helpers import SimpleError +from ._helpers import SimpleError, convert_args_to_redis_init_kwargs from ._server import FakeBaseConnectionMixin, VersionType, FakeServer, ServerType from .typing import async_timeout, Self @@ -191,16 +189,7 @@ lua_modules: Optional[Set[str]] = None, **kwargs: Any, ) -> None: - # Interpret the positional and keyword arguments according to the version of redis in use. - parameters = list(inspect.signature(redis_async.Redis.__init__).parameters.values())[1:] - # Convert args => kwargs - kwargs.update({parameters[i].name: args[i] for i in range(len(args))}) - kwargs.setdefault("host", uuid.uuid4().hex) - kwds = { - p.name: kwargs.get(p.name, p.default) - for ind, p in enumerate(parameters) - if p.default != inspect.Parameter.empty - } + kwds = convert_args_to_redis_init_kwargs(redis_async.Redis, *args, **kwargs) kwds["server"] = server kwds["connected"] = kwargs.get("connected", True) if not kwds.get("connection_pool", None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/pyproject.toml new/fakeredis-py-2.30.1/pyproject.toml --- old/fakeredis-py-2.30.0/pyproject.toml 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/pyproject.toml 2025-06-19 19:52:14.000000000 +0200 @@ -4,14 +4,14 @@ [project] name = "fakeredis" -version = "2.30.0" +version = "2.30.1" description = "Python implementation of redis API, can be used for testing purposes." authors = [ { name = "Daniel Moran", email = "dan...@moransoftware.ca" }, { name = "Bruce Merry", email = "bme...@ska.ac.za" }, { name = "James Saryerwinnie", email = "j...@jamesls.com" }, ] -requires-python = "~=3.7" +requires-python = ">=3.7" readme = "README.md" license = "BSD-3-Clause" maintainers = [{ name = "Daniel Moran", email = "dan...@moransoftware.ca" }] @@ -62,7 +62,7 @@ [dependency-groups] dev = [ - "ruff>=0.11 ; python_version >= '3.10'", + "ruff>=0.12 ; python_version >= '3.10'", "mypy>=1.15 ; python_version >= '3.10'", "pre-commit~=4.2 ; python_version >= '3.10'", ] @@ -91,17 +91,15 @@ [tool.hatch.build.targets.sdist] include = [ "fakeredis", - "LICENSE", "test", ] [tool.hatch.build.targets.wheel] include = [ "fakeredis", - "LICENSE", ] -[tool.hatch.build.targets.wheel.sources] +[tool.hatch.build.targets.wheel.force-include] LICENSE = "fakeredis/LICENSE" [tool.pytest.ini_options] @@ -135,6 +133,7 @@ '.venv', '__pycache__', ] +target-version = "py311" [tool.ruff.format] quote-style = "double" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/test/test_asyncredis.py new/fakeredis-py-2.30.1/test/test_asyncredis.py --- old/fakeredis-py-2.30.0/test/test_asyncredis.py 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/test/test_asyncredis.py 2025-06-19 19:52:14.000000000 +0200 @@ -58,7 +58,7 @@ await tr.execute() -async def test_pubsub(async_redis, event_loop): +async def test_pubsub(async_redis): queue = asyncio.Queue() async def reader(ps): @@ -71,7 +71,7 @@ async with async_timeout(5), async_redis.pubsub() as ps: await ps.subscribe("channel") - task = event_loop.create_task(reader(ps)) + task = asyncio.get_running_loop().create_task(reader(ps)) await async_redis.publish("channel", "message1") await async_redis.publish("channel", "message2") result1 = await queue.get() @@ -117,14 +117,14 @@ @pytest.mark.slow -async def test_blocking_unblock(async_redis, conn, event_loop): +async def test_blocking_unblock(async_redis, conn): """Blocking command that gets unblocked after some time.""" async def unblock(): await asyncio.sleep(0.1) await async_redis.rpush("list", "y") - task = event_loop.create_task(unblock()) + task = asyncio.get_running_loop().create_task(unblock()) result = await conn.blpop("list", timeout=1) assert result == (b"list", b"y") await task diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/test/test_internals/test_init_args.py new/fakeredis-py-2.30.1/test/test_internals/test_init_args.py --- old/fakeredis-py-2.30.0/test/test_internals/test_init_args.py 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/test/test_internals/test_init_args.py 2025-06-19 19:52:14.000000000 +0200 @@ -1,6 +1,29 @@ +from unittest import mock + import pytest import fakeredis +from test.testtools import run_test_if_redispy_ver + + +@pytest.mark.fake +@run_test_if_redispy_ver("gte", "6") +@mock.patch("warnings.warn") +def test_deprecated_args_show_warnings_for_retry_on_timeout(warn_mock: mock.MagicMock): + fakeredis.FakeStrictRedis(host="localhost", port=6390, db=0, retry_on_timeout=True) + warn_mock.assert_called_once_with( + "Call to '__init__' function with deprecated usage of input argument/s 'retry_on_timeout'. (TimeoutError is included by default.) -- Deprecated since version 6.0.0.", + category=DeprecationWarning, + stacklevel=3, + ) + + +@pytest.mark.fake +@run_test_if_redispy_ver("gte", "6") +@mock.patch("warnings.warn") +def test_deprecated_args_no_warnings(warn_mock: mock.MagicMock): + fakeredis.FakeStrictRedis(host="localhost", port=6390, db=0) + warn_mock.assert_not_called() @pytest.mark.fake diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fakeredis-py-2.30.0/uv.lock new/fakeredis-py-2.30.1/uv.lock --- old/fakeredis-py-2.30.0/uv.lock 2025-06-16 22:29:06.000000000 +0200 +++ new/fakeredis-py-2.30.1/uv.lock 2025-06-19 19:52:14.000000000 +0200 @@ -1,6 +1,6 @@ version = 1 revision = 2 -requires-python = ">=3.7, <4" +requires-python = ">=3.7" resolution-markers = [ "python_full_version >= '3.10'", "python_full_version == '3.9.*'", @@ -409,7 +409,7 @@ [[package]] name = "fakeredis" -version = "2.30.0" +version = "2.30.1" source = { editable = "." } dependencies = [ { name = "redis", version = "5.0.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.8'" }, @@ -479,7 +479,7 @@ dev = [ { name = "mypy", marker = "python_full_version >= '3.10'", specifier = ">=1.15" }, { name = "pre-commit", marker = "python_full_version >= '3.10'", specifier = "~=4.2" }, - { name = "ruff", marker = "python_full_version >= '3.10'", specifier = ">=0.11" }, + { name = "ruff", marker = "python_full_version >= '3.10'", specifier = ">=0.12" }, ] docs = [ { name = "pygithub", marker = "python_full_version >= '3.10'", specifier = "~=2.3" }, @@ -507,16 +507,16 @@ [[package]] name = "hypothesis" -version = "6.135.10" +version = "6.135.12" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs", marker = "python_full_version >= '3.9'" }, { name = "exceptiongroup", marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, { name = "sortedcontainers", marker = "python_full_version >= '3.9'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/8e/6176e9b3e51fbab6dab1e572116605dbc54eadda0c60dd45927f601d3c60/hypothesis-6.135.10.tar.gz", hash = "sha256:ce224e310012e40b8e3aa6edba226c032c57bbcbdccad41212ab6d2d74b602cf", size = 452518, upload-time = "2025-06-15T06:02:07.517Z" } +sdist = { url = "https://files.pythonhosted.org/packages/63/03/28f2158273fa2119641f793b7a73bbf8b38257800e18c825324cff6c9f8d/hypothesis-6.135.12.tar.gz", hash = "sha256:d2aeed8db7defc368841cbfb021d703cf98102827460bee7ba0d2e2aab6580f6", size = 452566, upload-time = "2025-06-19T17:36:09.922Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/e5/8c62bd37d2815f37a2886be6b9d5e037d14cc3f6adc377711f323617b113/hypothesis-6.135.10-py3-none-any.whl", hash = "sha256:275012ee9a7a1a64fd38745c2b7a07e838fc9f738d49c97a881d235b53fe28c1", size = 518624, upload-time = "2025-06-15T06:02:04.227Z" }, + { url = "https://files.pythonhosted.org/packages/c9/5b/12cfe6bfbf27c598f9000085cf53010cf4aa5b571740b882375cfdefa787/hypothesis-6.135.12-py3-none-any.whl", hash = "sha256:89baf42d7f08e20d3ab36768dea9636ea0532bdaf9951ae6fd9126a8d708345b", size = 518777, upload-time = "2025-06-19T17:36:06.224Z" }, ] [[package]] @@ -945,7 +945,7 @@ [[package]] name = "pytest" -version = "8.4.0" +version = "8.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, @@ -956,9 +956,9 @@ { name = "pygments", marker = "python_full_version >= '3.9'" }, { name = "tomli", marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/aa/405082ce2749be5398045152251ac69c0f3578c7077efc53431303af97ce/pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6", size = 1515232, upload-time = "2025-06-02T17:36:30.03Z" } +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/de/afa024cbe022b1b318a3d224125aa24939e99b4ff6f22e0ba639a2eaee47/pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e", size = 363797, upload-time = "2025-06-02T17:36:27.859Z" }, + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474, upload-time = "2025-06-18T05:48:03.955Z" }, ] [[package]] @@ -1156,27 +1156,27 @@ [[package]] name = "ruff" -version = "0.11.13" +version = "0.12.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ed/da/9c6f995903b4d9474b39da91d2d626659af3ff1eeb43e9ae7c119349dba6/ruff-0.11.13.tar.gz", hash = "sha256:26fa247dc68d1d4e72c179e08889a25ac0c7ba4d78aecfc835d49cbfd60bf514", size = 4282054, upload-time = "2025-06-05T21:00:15.721Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/90/5255432602c0b196a0da6720f6f76b93eb50baef46d3c9b0025e2f9acbf3/ruff-0.12.0.tar.gz", hash = "sha256:4d047db3662418d4a848a3fdbfaf17488b34b62f527ed6f10cb8afd78135bc5c", size = 4376101, upload-time = "2025-06-17T15:19:26.217Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/ce/a11d381192966e0b4290842cc8d4fac7dc9214ddf627c11c1afff87da29b/ruff-0.11.13-py3-none-linux_armv6l.whl", hash = "sha256:4bdfbf1240533f40042ec00c9e09a3aade6f8c10b6414cf11b519488d2635d46", size = 10292516, upload-time = "2025-06-05T20:59:32.944Z" }, - { url = "https://files.pythonhosted.org/packages/78/db/87c3b59b0d4e753e40b6a3b4a2642dfd1dcaefbff121ddc64d6c8b47ba00/ruff-0.11.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aef9c9ed1b5ca28bb15c7eac83b8670cf3b20b478195bd49c8d756ba0a36cf48", size = 11106083, upload-time = "2025-06-05T20:59:37.03Z" }, - { url = "https://files.pythonhosted.org/packages/77/79/d8cec175856ff810a19825d09ce700265f905c643c69f45d2b737e4a470a/ruff-0.11.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:53b15a9dfdce029c842e9a5aebc3855e9ab7771395979ff85b7c1dedb53ddc2b", size = 10436024, upload-time = "2025-06-05T20:59:39.741Z" }, - { url = "https://files.pythonhosted.org/packages/8b/5b/f6d94f2980fa1ee854b41568368a2e1252681b9238ab2895e133d303538f/ruff-0.11.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab153241400789138d13f362c43f7edecc0edfffce2afa6a68434000ecd8f69a", size = 10646324, upload-time = "2025-06-05T20:59:42.185Z" }, - { url = "https://files.pythonhosted.org/packages/6c/9c/b4c2acf24ea4426016d511dfdc787f4ce1ceb835f3c5fbdbcb32b1c63bda/ruff-0.11.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c51f93029d54a910d3d24f7dd0bb909e31b6cd989a5e4ac513f4eb41629f0dc", size = 10174416, upload-time = "2025-06-05T20:59:44.319Z" }, - { url = "https://files.pythonhosted.org/packages/f3/10/e2e62f77c65ede8cd032c2ca39c41f48feabedb6e282bfd6073d81bb671d/ruff-0.11.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1808b3ed53e1a777c2ef733aca9051dc9bf7c99b26ece15cb59a0320fbdbd629", size = 11724197, upload-time = "2025-06-05T20:59:46.935Z" }, - { url = "https://files.pythonhosted.org/packages/bb/f0/466fe8469b85c561e081d798c45f8a1d21e0b4a5ef795a1d7f1a9a9ec182/ruff-0.11.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:d28ce58b5ecf0f43c1b71edffabe6ed7f245d5336b17805803312ec9bc665933", size = 12511615, upload-time = "2025-06-05T20:59:49.534Z" }, - { url = "https://files.pythonhosted.org/packages/17/0e/cefe778b46dbd0cbcb03a839946c8f80a06f7968eb298aa4d1a4293f3448/ruff-0.11.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55e4bc3a77842da33c16d55b32c6cac1ec5fb0fbec9c8c513bdce76c4f922165", size = 12117080, upload-time = "2025-06-05T20:59:51.654Z" }, - { url = "https://files.pythonhosted.org/packages/5d/2c/caaeda564cbe103bed145ea557cb86795b18651b0f6b3ff6a10e84e5a33f/ruff-0.11.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:633bf2c6f35678c56ec73189ba6fa19ff1c5e4807a78bf60ef487b9dd272cc71", size = 11326315, upload-time = "2025-06-05T20:59:54.469Z" }, - { url = "https://files.pythonhosted.org/packages/75/f0/782e7d681d660eda8c536962920c41309e6dd4ebcea9a2714ed5127d44bd/ruff-0.11.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ffbc82d70424b275b089166310448051afdc6e914fdab90e08df66c43bb5ca9", size = 11555640, upload-time = "2025-06-05T20:59:56.986Z" }, - { url = "https://files.pythonhosted.org/packages/5d/d4/3d580c616316c7f07fb3c99dbecfe01fbaea7b6fd9a82b801e72e5de742a/ruff-0.11.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a9ddd3ec62a9a89578c85842b836e4ac832d4a2e0bfaad3b02243f930ceafcc", size = 10507364, upload-time = "2025-06-05T20:59:59.154Z" }, - { url = "https://files.pythonhosted.org/packages/5a/dc/195e6f17d7b3ea6b12dc4f3e9de575db7983db187c378d44606e5d503319/ruff-0.11.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d237a496e0778d719efb05058c64d28b757c77824e04ffe8796c7436e26712b7", size = 10141462, upload-time = "2025-06-05T21:00:01.481Z" }, - { url = "https://files.pythonhosted.org/packages/f4/8e/39a094af6967faa57ecdeacb91bedfb232474ff8c3d20f16a5514e6b3534/ruff-0.11.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26816a218ca6ef02142343fd24c70f7cd8c5aa6c203bca284407adf675984432", size = 11121028, upload-time = "2025-06-05T21:00:04.06Z" }, - { url = "https://files.pythonhosted.org/packages/5a/c0/b0b508193b0e8a1654ec683ebab18d309861f8bd64e3a2f9648b80d392cb/ruff-0.11.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:51c3f95abd9331dc5b87c47ac7f376db5616041173826dfd556cfe3d4977f492", size = 11602992, upload-time = "2025-06-05T21:00:06.249Z" }, - { url = "https://files.pythonhosted.org/packages/7c/91/263e33ab93ab09ca06ce4f8f8547a858cc198072f873ebc9be7466790bae/ruff-0.11.13-py3-none-win32.whl", hash = "sha256:96c27935418e4e8e77a26bb05962817f28b8ef3843a6c6cc49d8783b5507f250", size = 10474944, upload-time = "2025-06-05T21:00:08.459Z" }, - { url = "https://files.pythonhosted.org/packages/46/f4/7c27734ac2073aae8efb0119cae6931b6fb48017adf048fdf85c19337afc/ruff-0.11.13-py3-none-win_amd64.whl", hash = "sha256:29c3189895a8a6a657b7af4e97d330c8a3afd2c9c8f46c81e2fc5a31866517e3", size = 11548669, upload-time = "2025-06-05T21:00:11.147Z" }, - { url = "https://files.pythonhosted.org/packages/ec/bf/b273dd11673fed8a6bd46032c0ea2a04b2ac9bfa9c628756a5856ba113b0/ruff-0.11.13-py3-none-win_arm64.whl", hash = "sha256:b4385285e9179d608ff1d2fb9922062663c658605819a6876d8beef0c30b7f3b", size = 10683928, upload-time = "2025-06-05T21:00:13.758Z" }, + { url = "https://files.pythonhosted.org/packages/e6/fd/b46bb20e14b11ff49dbc74c61de352e0dc07fb650189513631f6fb5fc69f/ruff-0.12.0-py3-none-linux_armv6l.whl", hash = "sha256:5652a9ecdb308a1754d96a68827755f28d5dfb416b06f60fd9e13f26191a8848", size = 10311554, upload-time = "2025-06-17T15:18:45.792Z" }, + { url = "https://files.pythonhosted.org/packages/e7/d3/021dde5a988fa3e25d2468d1dadeea0ae89dc4bc67d0140c6e68818a12a1/ruff-0.12.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:05ed0c914fabc602fc1f3b42c53aa219e5736cb030cdd85640c32dbc73da74a6", size = 11118435, upload-time = "2025-06-17T15:18:49.064Z" }, + { url = "https://files.pythonhosted.org/packages/07/a2/01a5acf495265c667686ec418f19fd5c32bcc326d4c79ac28824aecd6a32/ruff-0.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:07a7aa9b69ac3fcfda3c507916d5d1bca10821fe3797d46bad10f2c6de1edda0", size = 10466010, upload-time = "2025-06-17T15:18:51.341Z" }, + { url = "https://files.pythonhosted.org/packages/4c/57/7caf31dd947d72e7aa06c60ecb19c135cad871a0a8a251723088132ce801/ruff-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7731c3eec50af71597243bace7ec6104616ca56dda2b99c89935fe926bdcd48", size = 10661366, upload-time = "2025-06-17T15:18:53.29Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ba/aa393b972a782b4bc9ea121e0e358a18981980856190d7d2b6187f63e03a/ruff-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:952d0630eae628250ab1c70a7fffb641b03e6b4a2d3f3ec6c1d19b4ab6c6c807", size = 10173492, upload-time = "2025-06-17T15:18:55.262Z" }, + { url = "https://files.pythonhosted.org/packages/d7/50/9349ee777614bc3062fc6b038503a59b2034d09dd259daf8192f56c06720/ruff-0.12.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c021f04ea06966b02614d442e94071781c424ab8e02ec7af2f037b4c1e01cc82", size = 11761739, upload-time = "2025-06-17T15:18:58.906Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/ad459de67c70ec112e2ba7206841c8f4eb340a03ee6a5cabc159fe558b8e/ruff-0.12.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7d235618283718ee2fe14db07f954f9b2423700919dc688eacf3f8797a11315c", size = 12537098, upload-time = "2025-06-17T15:19:01.316Z" }, + { url = "https://files.pythonhosted.org/packages/ed/50/15ad9c80ebd3c4819f5bd8883e57329f538704ed57bac680d95cb6627527/ruff-0.12.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c0758038f81beec8cc52ca22de9685b8ae7f7cc18c013ec2050012862cc9165", size = 12154122, upload-time = "2025-06-17T15:19:03.727Z" }, + { url = "https://files.pythonhosted.org/packages/76/e6/79b91e41bc8cc3e78ee95c87093c6cacfa275c786e53c9b11b9358026b3d/ruff-0.12.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:139b3d28027987b78fc8d6cfb61165447bdf3740e650b7c480744873688808c2", size = 11363374, upload-time = "2025-06-17T15:19:05.875Z" }, + { url = "https://files.pythonhosted.org/packages/db/c3/82b292ff8a561850934549aa9dc39e2c4e783ab3c21debe55a495ddf7827/ruff-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68853e8517b17bba004152aebd9dd77d5213e503a5f2789395b25f26acac0da4", size = 11587647, upload-time = "2025-06-17T15:19:08.246Z" }, + { url = "https://files.pythonhosted.org/packages/2b/42/d5760d742669f285909de1bbf50289baccb647b53e99b8a3b4f7ce1b2001/ruff-0.12.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3a9512af224b9ac4757f7010843771da6b2b0935a9e5e76bb407caa901a1a514", size = 10527284, upload-time = "2025-06-17T15:19:10.37Z" }, + { url = "https://files.pythonhosted.org/packages/19/f6/fcee9935f25a8a8bba4adbae62495c39ef281256693962c2159e8b284c5f/ruff-0.12.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b08df3d96db798e5beb488d4df03011874aff919a97dcc2dd8539bb2be5d6a88", size = 10158609, upload-time = "2025-06-17T15:19:12.286Z" }, + { url = "https://files.pythonhosted.org/packages/37/fb/057febf0eea07b9384787bfe197e8b3384aa05faa0d6bd844b94ceb29945/ruff-0.12.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6a315992297a7435a66259073681bb0d8647a826b7a6de45c6934b2ca3a9ed51", size = 11141462, upload-time = "2025-06-17T15:19:15.195Z" }, + { url = "https://files.pythonhosted.org/packages/10/7c/1be8571011585914b9d23c95b15d07eec2d2303e94a03df58294bc9274d4/ruff-0.12.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1e55e44e770e061f55a7dbc6e9aed47feea07731d809a3710feda2262d2d4d8a", size = 11641616, upload-time = "2025-06-17T15:19:17.6Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ef/b960ab4818f90ff59e571d03c3f992828d4683561095e80f9ef31f3d58b7/ruff-0.12.0-py3-none-win32.whl", hash = "sha256:7162a4c816f8d1555eb195c46ae0bd819834d2a3f18f98cc63819a7b46f474fb", size = 10525289, upload-time = "2025-06-17T15:19:19.688Z" }, + { url = "https://files.pythonhosted.org/packages/34/93/8b16034d493ef958a500f17cda3496c63a537ce9d5a6479feec9558f1695/ruff-0.12.0-py3-none-win_amd64.whl", hash = "sha256:d00b7a157b8fb6d3827b49d3324da34a1e3f93492c1f97b08e222ad7e9b291e0", size = 11598311, upload-time = "2025-06-17T15:19:21.785Z" }, + { url = "https://files.pythonhosted.org/packages/d0/33/4d3e79e4a84533d6cd526bfb42c020a23256ae5e4265d858bd1287831f7d/ruff-0.12.0-py3-none-win_arm64.whl", hash = "sha256:8cd24580405ad8c1cc64d61725bca091d6b6da7eb3d36f72cc605467069d7e8b", size = 10724946, upload-time = "2025-06-17T15:19:23.952Z" }, ] [[package]] @@ -1266,11 +1266,11 @@ [[package]] name = "urllib3" -version = "2.4.0" +version = "2.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload-time = "2025-04-10T15:23:39.232Z" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload-time = "2025-04-10T15:23:37.377Z" }, + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, ] [[package]]