openlimit
openlimit copied to clipboard
TypeError: duplicate base class TimeoutError (Python >=3.11)
Hello,
The package does not work on Python >=3.11
>>> from openlimit import EmbeddingRateLimiter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lib/python3.11/site-packages/openlimit/__init__.py", line 1, in <module>
from openlimit.rate_limiters import ChatRateLimiter, CompletionRateLimiter, EmbeddingRateLimiter
File "lib/python3.11/site-packages/openlimit/rate_limiters.py", line 6, in <module>
from openlimit.buckets import Bucket
File "lib/python3.11/site-packages/openlimit/buckets/__init__.py", line 1, in <module>
from openlimit.buckets.redis_bucket import RedisBucket
File "lib/python3.11/site-packages/openlimit/buckets/redis_bucket.py", line 6, in <module>
import aioredis
File "lib/python3.11/site-packages/aioredis/__init__.py", line 1, in <module>
from aioredis.client import Redis, StrictRedis
File "lib/python3.11/site-packages/aioredis/client.py", line 32, in <module>
from aioredis.connection import (
File "lib/python3.11/site-packages/aioredis/connection.py", line 33, in <module>
from .exceptions import (
File "lib/python3.11/site-packages/aioredis/exceptions.py", line 14, in <module>
class TimeoutError(asyncio.TimeoutError, builtins.TimeoutError, RedisError):
TypeError: duplicate base class TimeoutError
Please use redis.asyncio
instead of the abandoned aioredis
dependency.
Aioredis is now in redis-py 4.2.0rc1+
Also, it would be nice to have redis dependency be optional in extras:
pip install openlimit[redis]