Skip to content
This repository was archived by the owner on Nov 20, 2022. It is now read-only.

Commit cb8b801

Browse files
Use requests.Session() as a context manager, simplify __init__, eliminate __exit__
1 parent fea97d9 commit cb8b801

1 file changed

Lines changed: 16 additions & 23 deletions

File tree

src/pythonpancakes/api.py

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,41 @@
22
import re
33
import requests
44

5-
from requests.adapters import HTTPAdapter
6-
from requests.packages.urllib3.util.retry import Retry
7-
85

96
class PancakeSwapAPI:
107
__BASE_URL = "https://api.pancakeswap.info/api/v2/"
8+
119
"""
1210
Basic API request wrapper for PancakeSwap
1311
Scott Burlovich (github.com/scottburlovich)
14-
Last Update: May 9, 2021
12+
Last Update: Jul 28, 2021
1513
"""
1614

1715
def __init__(self, base_url=__BASE_URL):
1816
self.base_url = base_url
1917
self.request_timeout = 60
20-
self.session = requests.session()
21-
retries = Retry(total=3, backoff_factor=0.5, status_forcelist=[502, 503, 504])
22-
self.session.mount('https://', HTTPAdapter(max_retries=retries))
23-
24-
def __exit__(self):
25-
self.session.close()
2618

2719
def __get(self, request_url: str):
2820
"""
2921
GET request wrapper
3022
:param request_url: str
3123
"""
32-
try:
33-
response = self.session.get(request_url, timeout=self.request_timeout)
34-
except requests.exceptions.RequestException:
35-
raise
24+
with requests.Session() as session:
25+
try:
26+
response = session.get(request_url, timeout=self.request_timeout)
27+
except requests.exceptions.RequestException:
28+
raise
3629

37-
try:
38-
response.raise_for_status()
39-
return json.loads(response.content.decode('utf-8'))
40-
except Exception as err:
4130
try:
42-
content = json.loads(response.content.decode('utf-8'))
43-
raise ValueError(content)
44-
except json.decoder.JSONDecodeError:
45-
pass
46-
raise
31+
response.raise_for_status()
32+
return json.loads(response.content.decode('utf-8'))
33+
except Exception as err:
34+
try:
35+
content = json.loads(response.content.decode('utf-8'))
36+
raise ValueError(content)
37+
except json.decoder.JSONDecodeError:
38+
pass
39+
raise
4740

4841
def summary(self):
4942
"""

0 commit comments

Comments
 (0)