From 99c6abb4479a497685885fbde2e992e22562cd84 Mon Sep 17 00:00:00 2001 From: gleb Date: Sun, 4 Apr 2021 19:10:30 +0300 Subject: [PATCH] fix critical bug --- README.md | 12 ++++++++++++ examples/without_context.py | 12 +++++++++--- glQiwiApi/api.py | 1 - glQiwiApi/data_models/basics.py | 3 ++- glQiwiApi/exceptions.py | 8 ++++---- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 49d2b7fa..66658ad1 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,18 @@ async def main(): print((await w.get_balance()).amount) +# Also you can use it like here +my_wallet = QiwiWrapper( + api_access_token='your_token', + phone_number='+phone_number' +) + + +async def main_2(): + async with my_wallet as w: + print(await w.get_balance()) + + asyncio.run(main()) ``` diff --git a/examples/without_context.py b/examples/without_context.py index 70c0efc8..97058c80 100644 --- a/examples/without_context.py +++ b/examples/without_context.py @@ -11,8 +11,14 @@ ) -async def old_usage(): - print(await wallet.get_balance()) +async def main(): + async with QiwiWrapper(secret_p2p='my_p2p') as w: + w.public_p2p = 'my_public_p2p' + bill = await w.create_p2p_bill(amount=1) + # new version + new_status = await bill.check() + # old version + old_status = (await w.check_p2p_bill_status(bill.bill_id)) == 'PAID' -asyncio.run(old_usage()) +asyncio.run(main()) diff --git a/glQiwiApi/api.py b/glQiwiApi/api.py index 3e65b609..f37474f1 100644 --- a/glQiwiApi/api.py +++ b/glQiwiApi/api.py @@ -1,4 +1,3 @@ -import abc import asyncio from itertools import repeat from typing import Literal, Optional, Union, Dict, List, Tuple, Any, AsyncGenerator diff --git a/glQiwiApi/data_models/basics.py b/glQiwiApi/data_models/basics.py index c3bcbe38..e9e38fbf 100644 --- a/glQiwiApi/data_models/basics.py +++ b/glQiwiApi/data_models/basics.py @@ -43,7 +43,8 @@ def initialize(self, w: Any): return self async def check(self) -> bool: - return (await self._w.check_p2p_bill_status(bill_id=self.bill_id)) == 'PAID' + async with self._w: + return (await self._w.check_p2p_bill_status(bill_id=self.bill_id)) == 'PAID' __all__ = [ diff --git a/glQiwiApi/exceptions.py b/glQiwiApi/exceptions.py index e5c70991..ddda46f9 100644 --- a/glQiwiApi/exceptions.py +++ b/glQiwiApi/exceptions.py @@ -50,10 +50,10 @@ def __repr__(self) -> str: def json(self) -> str: import json - return json.dumps( - self._json_info, indent=2, - ensure_ascii=False - ) if self._json_info is not None else self.__str__() + + if isinstance(self._json_info, dict): + return json.dumps(self._json_info, indent=2, ensure_ascii=False) + return self.__str__() __all__ = [