From 0ae4f6d9484695f36e53266b079e280eedce9f7f Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Tue, 11 Jul 2017 23:41:40 +0300 Subject: [PATCH] Small fix --- aiogram/bot/api.py | 3 ++- aiogram/bot/base.py | 2 +- aiogram/bot/bot.py | 2 +- aiogram/dispatcher/__init__.py | 2 +- aiogram/types/chat.py | 2 +- aiogram/utils/json.py | 12 ++++++++++++ requirements.txt | 1 + 7 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 aiogram/utils/json.py diff --git a/aiogram/bot/api.py b/aiogram/bot/api.py index 12f45622..0709074d 100644 --- a/aiogram/bot/api.py +++ b/aiogram/bot/api.py @@ -4,6 +4,7 @@ import os import aiohttp from ..exceptions import ValidationError, TelegramAPIError +from ..utils import json log = logging.getLogger('aiogram') @@ -40,7 +41,7 @@ async def _check_result(method_name, response): raise TelegramAPIError(f"The server returned HTTP {response.status}. Response body:\n[{body}]", method_name, response.status, body) - result_json = await response.json() + result_json = await response.json(loads=json.loads) if not result_json.get('ok'): body = await response.text() diff --git a/aiogram/bot/base.py b/aiogram/bot/base.py index e77b9dcb..b3b6ce7d 100644 --- a/aiogram/bot/base.py +++ b/aiogram/bot/base.py @@ -1,10 +1,10 @@ import asyncio import io -import json import aiohttp from . import api +from ..utils import json from ..utils.payload import generate_payload diff --git a/aiogram/bot/bot.py b/aiogram/bot/bot.py index ffec10f4..47ebf95b 100644 --- a/aiogram/bot/bot.py +++ b/aiogram/bot/bot.py @@ -1,5 +1,5 @@ import datetime -import json +from ..utils import json import time from .base import BaseBot diff --git a/aiogram/dispatcher/__init__.py b/aiogram/dispatcher/__init__.py index 6156c790..5254fb87 100644 --- a/aiogram/dispatcher/__init__.py +++ b/aiogram/dispatcher/__init__.py @@ -12,7 +12,7 @@ log = logging.getLogger(__name__) class Dispatcher: def __init__(self, bot, loop=None): - self.bot: Bot = bot + self.bot: 'Bot' = bot if loop is None: loop = self.bot.loop diff --git a/aiogram/types/chat.py b/aiogram/types/chat.py index 55632167..8c65bdfc 100644 --- a/aiogram/types/chat.py +++ b/aiogram/types/chat.py @@ -1,4 +1,4 @@ -from . import ChatPhoto +from .chat_photo import ChatPhoto from .base import Deserializable diff --git a/aiogram/utils/json.py b/aiogram/utils/json.py new file mode 100644 index 00000000..bc127402 --- /dev/null +++ b/aiogram/utils/json.py @@ -0,0 +1,12 @@ +try: + import ujson as json +except ImportError: + import json + + +def dumps(data): + return json.dumps(data) + + +def loads(data): + return json.loads(data) diff --git a/requirements.txt b/requirements.txt index 66620d60..ba3d4c48 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +ujson aiohttp>=2.1.0 appdirs>=1.4.3 async-timeout>=1.2.1