From 4bf5409295d2cd05266eac4a0fd2619ec466a391 Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Sat, 21 Oct 2017 20:56:48 +0300 Subject: [PATCH] Fix object item assignment. --- aiogram/types/base.py | 10 ++++------ aiogram/types/fields.py | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/aiogram/types/base.py b/aiogram/types/base.py index 6869c5a4..03afcb53 100644 --- a/aiogram/types/base.py +++ b/aiogram/types/base.py @@ -183,15 +183,13 @@ class TelegramObject(metaclass=MetaTelegramObject): def __getitem__(self, item): if item in self.props: - return getattr(self, item) - elif item in self.values: - return self.values[item] + return self.props[item].get_value(self) + raise KeyError(item) def __setitem__(self, key, value): if key in self.props: - setattr(self, key, value) - else: - self.values[key] = value + return self.props[key].set_value(self, value, self.conf.get('parent', None)) + raise KeyError(key) def __contains__(self, item): self.clean() diff --git a/aiogram/types/fields.py b/aiogram/types/fields.py index 3559e8d3..5c974eec 100644 --- a/aiogram/types/fields.py +++ b/aiogram/types/fields.py @@ -71,7 +71,7 @@ class BaseField(metaclass=abc.ABCMeta): pass @abc.abstractmethod - def deserialize(self, value): + def deserialize(self, value, parent=None): """Deserialize python object value to TelegramObject value""" pass