FIX TelegramObject.__setitem__ (#532)

* FIX TelegramObject.__setitem__
Removed 'raise KeyError(key)'

* Add warning and log in TelegramObject.__setitem__
When Telegram adds a new field -> Aiogram will warn about this.

* Removed warnings.warn

* Set logger to 'aiogram'

* Removed 'f' before string
This commit is contained in:
Andrew 2021-03-21 09:37:00 +02:00 committed by GitHub
parent ee0ceee704
commit b0f2fe3ed4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,7 @@
from __future__ import annotations
import io
import logging
import typing
from typing import TypeVar
@ -26,6 +27,9 @@ Float = TypeVar('Float', bound=float)
Boolean = TypeVar('Boolean', bound=bool)
T = TypeVar('T')
# Main aiogram logger
log = logging.getLogger('aiogram')
class MetaTelegramObject(type):
"""
@ -225,7 +229,9 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
if key in self.props:
return self.props[key].set_value(self, value, self.conf.get('parent', None))
self.values[key] = value
raise KeyError(key)
# Log warning when Telegram silently adds new Fields
log.warning("Field '%s' doesn't exist in %s", key, self.__class__)
def __contains__(self, item: str) -> bool:
"""