Files
2025-04-24 11:44:23 +02:00

28 lines
657 B
Python

"""
errors and exceptions
"""
from starlette.exceptions import HTTPException
from .wrappers import Limit
class RateLimitExceeded(HTTPException):
"""
exception raised when a rate limit is hit.
"""
limit = None
def __init__(self, limit: Limit) -> None:
self.limit = limit
if limit.error_message:
description: str = (
limit.error_message
if not callable(limit.error_message)
else limit.error_message()
)
else:
description = str(limit.limit)
super(RateLimitExceeded, self).__init__(status_code=429, detail=description)