From 25bdb9cf4d34573f92e5c4b177988bd1c3d9efe5 Mon Sep 17 00:00:00 2001 From: Alex RootJunior Date: Sun, 7 Apr 2019 14:13:54 +0300 Subject: [PATCH] Fix #117: TypeError with LazyProxy object in keyboards --- aiogram/types/base.py | 4 ++++ aiogram/utils/payload.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/aiogram/types/base.py b/aiogram/types/base.py index 4514e956..97f67b16 100644 --- a/aiogram/types/base.py +++ b/aiogram/types/base.py @@ -4,6 +4,8 @@ import io import typing from typing import TypeVar +from babel.support import LazyProxy + from .fields import BaseField from ..utils import json from ..utils.mixins import ContextInstanceMixin @@ -163,6 +165,8 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject): value = self.props[name].export(self) if isinstance(value, TelegramObject): value = value.to_python() + if isinstance(value, LazyProxy): + value = str(value) result[self.props_aliases.get(name, name)] = value return result diff --git a/aiogram/utils/payload.py b/aiogram/utils/payload.py index bbed1967..45643553 100644 --- a/aiogram/utils/payload.py +++ b/aiogram/utils/payload.py @@ -1,6 +1,8 @@ import datetime import secrets +from babel.support import LazyProxy + from aiogram import types from . import json @@ -57,6 +59,8 @@ def prepare_arg(value): return int((now + value).timestamp()) elif isinstance(value, datetime.datetime): return round(value.timestamp()) + elif isinstance(value, LazyProxy): + return str(value) return value