Added github integration
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
"""errors and exceptions."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from flask.wrappers import Response
|
||||
from werkzeug import exceptions
|
||||
|
||||
from ._limits import RuntimeLimit
|
||||
|
||||
|
||||
class RateLimitExceeded(exceptions.TooManyRequests):
|
||||
"""Exception raised when a rate limit is hit."""
|
||||
|
||||
def __init__(self, limit: RuntimeLimit, response: Response | None = None) -> None:
|
||||
"""
|
||||
:param limit: The actual rate limit that was hit. This is used to construct the default
|
||||
response message
|
||||
:param response: Optional pre constructed response. If provided it will be rendered by
|
||||
flask instead of the default error response of :class:`~werkzeug.exceptions.HTTPException`
|
||||
"""
|
||||
self.limit = limit
|
||||
self.response = response
|
||||
if limit.error_message:
|
||||
description = (
|
||||
limit.error_message if not callable(limit.error_message) else limit.error_message()
|
||||
)
|
||||
else:
|
||||
description = str(limit.limit)
|
||||
super().__init__(description=description, response=response)
|
||||
Reference in New Issue
Block a user