Исходный код raito.utils.errors

from aiogram.exceptions import TelegramBadRequest
from typing_extensions import Self


[документация] class SuppressNotModifiedError: """ Context manager that suppresses the ``TelegramBadRequest`` exception with the message ``Bad Request: message is not modified``. This is useful when editing a Telegram message and the new content is identical to the existing one, which would otherwise raise an error from the Telegram API. Example: .. code-block:: python from raito.utils.errors import SuppressNotModifiedError with SuppressNotModifiedError(): await message.edit_text("same text") :param ignore_message: The exact error message to match. If this message is found in the raised ``TelegramBadRequest``, the exception is suppressed. Defaults to ``"Bad Request: message is not modified"``. :type ignore_message: str """ def __init__(self, ignore_message: str = "Bad Request: message is not modified") -> None: """Initialize the context manager. :param ignore_message: Error message string to match against. """ self.ignore_message = ignore_message def __enter__(self) -> Self: """Enter the runtime context related to this object. :return: The context manager instance itself. """ return self def __exit__( self, exc_type: type[BaseException] | None, exc_val: BaseException | None, _: object, ) -> bool: """Exit the runtime context and suppress the exception if it matches. :param exc_type: The exception type (if any). :param exc_val: The exception instance (if any). :param _: The traceback object (unused). :return: True if the exception should be suppressed, False otherwise. :rtype: bool """ return ( exc_type is TelegramBadRequest and exc_val is not None and self.ignore_message in str(exc_val) )