Skip to content

Commit e4b6346

Browse files
author
Nicolas Steinmetz
committed
chore: bump components version
1 parent 8f2ced5 commit e4b6346

File tree

15 files changed

+111
-102
lines changed

15 files changed

+111
-102
lines changed

HISTORY.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
History
44
-------
55

6+
v0.26.4 (2025-XX-XX)
7+
....................
8+
9+
* Extend support for redis-py 6.x - Add python 3.13 support - Remove python 3.8 by @nsteinmetz in #500
10+
11+
612
v0.26.3 (2025-01-06)
713
....................
814

arq/connections.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,5 @@ async def log_redis_info(redis: 'Redis[bytes]', log_func: Callable[[str], Any])
312312
clients_connected = info_clients.get('connected_clients', '?')
313313

314314
log_func(
315-
f'redis_version={redis_version} '
316-
f'mem_usage={mem_usage} '
317-
f'clients_connected={clients_connected} '
318-
f'db_keys={key_count}'
315+
f'redis_version={redis_version} mem_usage={mem_usage} clients_connected={clients_connected} db_keys={key_count}'
319316
)

arq/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
import os
44
from collections.abc import AsyncGenerator, Sequence
5-
from datetime import datetime, timedelta, timezone
5+
from datetime import UTC, datetime, timedelta
66
from functools import lru_cache
77
from time import time
88
from typing import TYPE_CHECKING, Any, Optional, overload
@@ -53,7 +53,7 @@ def ms_to_datetime(unix_ms: int) -> datetime:
5353
"""
5454
convert milliseconds to datetime, use the timezone in os.environ
5555
"""
56-
dt = datetime.fromtimestamp(unix_ms / 1000, tz=timezone.utc)
56+
dt = datetime.fromtimestamp(unix_ms / 1000, tz=UTC)
5757
tz = get_tz()
5858
if tz:
5959
dt = dt.astimezone(tz)

arq/worker.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def func(
8282

8383
if isinstance(coroutine, str):
8484
name = name or coroutine
85-
coroutine_: 'WorkerCoroutine' = import_string(coroutine)
85+
coroutine_: WorkerCoroutine = import_string(coroutine)
8686
else:
8787
coroutine_ = coroutine
8888

@@ -870,7 +870,7 @@ async def close(self) -> None:
870870
await self.pool.delete(self.health_check_key)
871871
if self.on_shutdown:
872872
await self.on_shutdown(self.ctx)
873-
await self.pool.close(close_connection_pool=True)
873+
await self.pool.aclose(close_connection_pool=True)
874874
self._pool = None
875875

876876
def __repr__(self) -> str:
@@ -911,7 +911,7 @@ async def async_check_health(
911911
else:
912912
logger.info('Health check successful: %s', data)
913913
r = 0
914-
await redis.close(close_connection_pool=True)
914+
await redis.aclose(close_connection_pool=True)
915915
return r
916916

917917

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ classifiers = [
3838
]
3939
requires-python = '>=3.9'
4040
dependencies = [
41-
'redis[hiredis]>=4.2.0,<7',
42-
'click>=8.0',
41+
'redis[hiredis]>=5.3.0,<6',
42+
'click>=8.0,<8.2',
4343
]
44-
optional-dependencies = {watch = ['watchfiles>=0.16'] }
44+
optional-dependencies = {watch = ['watchfiles>=1.0'] }
4545
dynamic = ['version']
4646

4747
[project.scripts]

requirements/docs.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Sphinx>=5,<6
1+
Sphinx

requirements/docs.txt

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,47 @@
44
#
55
# pip-compile --output-file=requirements/docs.txt --strip-extras requirements/docs.in
66
#
7-
alabaster==0.7.16
7+
alabaster==1.0.0
88
# via sphinx
9-
babel==2.14.0
9+
babel==2.17.0
1010
# via sphinx
11-
certifi==2024.7.4
11+
certifi==2025.4.26
1212
# via requests
13-
charset-normalizer==3.3.2
13+
charset-normalizer==3.4.2
1414
# via requests
15-
docutils==0.19
15+
docutils==0.21.2
1616
# via sphinx
17-
idna==3.7
17+
idna==3.10
1818
# via requests
1919
imagesize==1.4.1
2020
# via sphinx
21-
jinja2==3.1.4
21+
jinja2==3.1.6
2222
# via sphinx
23-
markupsafe==2.1.5
23+
markupsafe==3.0.2
2424
# via jinja2
25-
packaging==24.0
25+
packaging==25.0
2626
# via sphinx
27-
pygments==2.17.2
27+
pygments==2.19.1
2828
# via sphinx
2929
requests==2.32.3
3030
# via sphinx
31-
snowballstemmer==2.2.0
31+
roman-numerals-py==3.1.0
3232
# via sphinx
33-
sphinx==5.3.0
34-
# via -r docs.in
35-
sphinxcontrib-applehelp==1.0.8
33+
snowballstemmer==3.0.1
3634
# via sphinx
37-
sphinxcontrib-devhelp==1.0.6
35+
sphinx==8.2.3
36+
# via -r requirements/docs.in
37+
sphinxcontrib-applehelp==2.0.0
3838
# via sphinx
39-
sphinxcontrib-htmlhelp==2.0.5
39+
sphinxcontrib-devhelp==2.0.0
40+
# via sphinx
41+
sphinxcontrib-htmlhelp==2.1.0
4042
# via sphinx
4143
sphinxcontrib-jsmath==1.0.1
4244
# via sphinx
43-
sphinxcontrib-qthelp==1.0.7
45+
sphinxcontrib-qthelp==2.0.0
4446
# via sphinx
45-
sphinxcontrib-serializinghtml==1.1.10
47+
sphinxcontrib-serializinghtml==2.0.0
4648
# via sphinx
47-
urllib3==2.2.2
49+
urllib3==2.4.0
4850
# via requests

requirements/linting.txt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,32 @@
44
#
55
# pip-compile --output-file=requirements/linting.txt --strip-extras requirements/linting.in
66
#
7-
cffi==1.16.0
7+
cffi==1.17.1
88
# via cryptography
9-
cryptography==42.0.5
9+
cryptography==44.0.3
1010
# via
1111
# types-pyopenssl
1212
# types-redis
13-
mypy==1.9.0
13+
mypy==1.15.0
1414
# via -r requirements/linting.in
15-
mypy-extensions==1.0.0
15+
mypy-extensions==1.1.0
1616
# via mypy
1717
pycparser==2.22
1818
# via cffi
19-
ruff==0.3.4
19+
ruff==0.11.9
2020
# via -r requirements/linting.in
21-
types-pyopenssl==24.0.0.20240311
21+
types-cffi==1.17.0.20250326
22+
# via types-pyopenssl
23+
types-pyopenssl==24.1.0.20240722
2224
# via types-redis
23-
types-pytz==2024.1.0.20240203
25+
types-pytz==2025.2.0.20250326
2426
# via -r requirements/linting.in
25-
types-redis==4.6.0.20240311
27+
types-redis==4.6.0.20241004
2628
# via -r requirements/linting.in
27-
typing-extensions==4.10.0
29+
types-setuptools==80.4.0.20250511
30+
# via types-cffi
31+
typing-extensions==4.13.2
2832
# via mypy
33+
34+
# The following packages are considered to be unsafe in a requirements file:
35+
# setuptools

requirements/pyproject.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,21 @@
44
#
55
# pip-compile --all-extras --output-file=requirements/pyproject.txt --strip-extras pyproject.toml
66
#
7-
anyio==4.3.0
7+
anyio==4.9.0
88
# via watchfiles
9-
click==8.1.7
9+
click==8.1.8
1010
# via arq (pyproject.toml)
11-
hiredis==2.3.2
11+
hiredis==3.1.1
1212
# via redis
13-
idna==3.7
13+
idna==3.10
1414
# via anyio
15-
redis==4.6.0
15+
pyjwt==2.9.0
16+
# via redis
17+
redis==5.3.0
1618
# via arq (pyproject.toml)
1719
sniffio==1.3.1
1820
# via anyio
19-
watchfiles==0.21.0
21+
typing-extensions==4.13.2
22+
# via anyio
23+
watchfiles==1.0.5
2024
# via arq (pyproject.toml)

requirements/testing.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ pytest-mock
88
pytest-pretty
99
pytest-timeout
1010
pytz
11-
testcontainers<4 # until we remove 3.8 support
11+
testcontainers

requirements/testing.txt

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,78 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.9
2+
# This file is autogenerated by pip-compile with Python 3.12
33
# by the following command:
44
#
55
# pip-compile --output-file=requirements/testing.txt --strip-extras requirements/testing.in
66
#
7-
annotated-types==0.6.0
7+
annotated-types==0.7.0
88
# via pydantic
9-
certifi==2024.7.4
9+
certifi==2025.4.26
1010
# via requests
11-
charset-normalizer==3.3.2
11+
charset-normalizer==3.4.2
1212
# via requests
13-
coverage==7.4.4
13+
coverage==7.8.0
1414
# via -r requirements/testing.in
15-
deprecation==2.1.0
16-
# via testcontainers
17-
dirty-equals==0.7.1.post0
15+
dirty-equals==0.9.0
1816
# via -r requirements/testing.in
1917
docker==7.1.0
2018
# via testcontainers
21-
exceptiongroup==1.2.2
22-
# via pytest
23-
idna==3.7
19+
idna==3.10
2420
# via requests
25-
iniconfig==2.0.0
21+
iniconfig==2.1.0
2622
# via pytest
2723
markdown-it-py==3.0.0
2824
# via rich
2925
mdurl==0.1.2
3026
# via markdown-it-py
31-
msgpack==1.0.8
27+
msgpack==1.1.0
3228
# via -r requirements/testing.in
33-
packaging==24.0
34-
# via
35-
# deprecation
36-
# pytest
37-
pluggy==1.4.0
29+
packaging==25.0
3830
# via pytest
39-
pydantic==2.6.4
31+
pluggy==1.6.0
32+
# via pytest
33+
pydantic==2.11.4
4034
# via -r requirements/testing.in
41-
pydantic-core==2.16.3
35+
pydantic-core==2.33.2
4236
# via pydantic
43-
pygments==2.17.2
37+
pygments==2.19.1
4438
# via rich
45-
pytest==8.1.1
39+
pytest==8.3.5
4640
# via
4741
# -r requirements/testing.in
4842
# pytest-asyncio
4943
# pytest-mock
5044
# pytest-pretty
5145
# pytest-timeout
52-
pytest-asyncio==0.23.6
46+
pytest-asyncio==0.26.0
5347
# via -r requirements/testing.in
5448
pytest-mock==3.14.0
5549
# via -r requirements/testing.in
5650
pytest-pretty==1.2.0
5751
# via -r requirements/testing.in
58-
pytest-timeout==2.3.1
52+
pytest-timeout==2.4.0
53+
# via -r requirements/testing.in
54+
python-dotenv==1.1.0
55+
# via testcontainers
56+
pytz==2025.2
5957
# via -r requirements/testing.in
60-
pytz==2024.1
61-
# via
62-
# -r requirements/testing.in
63-
# dirty-equals
6458
requests==2.32.3
6559
# via docker
66-
rich==13.7.1
60+
rich==14.0.0
6761
# via pytest-pretty
68-
testcontainers==3.7.1
62+
testcontainers==4.10.0
6963
# via -r requirements/testing.in
70-
tomli==2.0.1
71-
# via
72-
# coverage
73-
# pytest
74-
typing-extensions==4.10.0
64+
typing-extensions==4.13.2
7565
# via
7666
# pydantic
7767
# pydantic-core
78-
urllib3==2.2.2
68+
# testcontainers
69+
# typing-inspection
70+
typing-inspection==0.4.0
71+
# via pydantic
72+
urllib3==2.4.0
7973
# via
8074
# docker
8175
# requests
82-
wrapt==1.16.0
76+
# testcontainers
77+
wrapt==1.17.2
8378
# via testcontainers

tests/conftest.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_redis_host(redis_container: RedisContainer) -> str:
3838

3939
@pytest.fixture(scope='session')
4040
def test_redis_port(redis_container: RedisContainer) -> int:
41-
return redis_container.get_exposed_port(redis_container.port_to_expose)
41+
return redis_container.get_exposed_port(6379)
4242

4343

4444
@pytest.fixture(scope='session')
@@ -58,7 +58,7 @@ async def arq_redis(test_redis_host: str, test_redis_port: int):
5858

5959
yield redis_
6060

61-
await redis_.close(close_connection_pool=True)
61+
await redis_.aclose(close_connection_pool=True)
6262

6363

6464
@pytest.fixture
@@ -72,7 +72,7 @@ async def arq_redis_msgpack(test_redis_host: str, test_redis_port: int):
7272
)
7373
await redis_.flushall()
7474
yield redis_
75-
await redis_.close(close_connection_pool=True)
75+
await redis_.aclose(close_connection_pool=True)
7676

7777

7878
@pytest.fixture
@@ -87,7 +87,7 @@ async def arq_redis_retry(test_redis_host: str, test_redis_port: int):
8787
)
8888
await redis_.flushall()
8989
yield redis_
90-
await redis_.close(close_connection_pool=True)
90+
await redis_.aclose(close_connection_pool=True)
9191

9292

9393
@pytest.fixture
@@ -140,7 +140,7 @@ async def create_pool_(settings, *args, **kwargs):
140140

141141
yield create_pool_
142142

143-
await asyncio.gather(*[p.close(close_connection_pool=True) for p in pools])
143+
await asyncio.gather(*[p.aclose(close_connection_pool=True) for p in pools])
144144

145145

146146
@pytest.fixture(name='cancel_remaining_task')

0 commit comments

Comments
 (0)