@@ -0,0 +1,61 @@
4+the_http_adapter = requests.adapters.HTTPAdapter(pool_connections=100)
5+the_https_adapter = requests.adapters.HTTPAdapter(pool_connections=100)
8+class SessionSinglePool(requests.Session):
11+ global the_https_adapter, the_http_adapter
12+ super(SessionSinglePool, self).__init__()
14+ # reuse the same adapters
15+ self.adapters.clear()
16+ self.mount('https://', the_https_adapter)
17+ self.mount('http://', the_http_adapter)
20+ """Call super, but clear adapters since there are managed globaly"""
21+ self.adapters.clear()
22+ super(SessionSinglePool, self).close()
25+def request(method, url, **kwargs):
26+ """same as requests/requests/api.py request(...) except it use SessionSinglePool"""
27+ session = SessionSinglePool()
28+ response = session.request(method=method, url=url, **kwargs)
33+def get(url, **kwargs):
34+ kwargs.setdefault('allow_redirects', True)
35+ return request('get', url, **kwargs)
38+def options(url, **kwargs):
39+ kwargs.setdefault('allow_redirects', True)
40+ return request('options', url, **kwargs)
43+def head(url, **kwargs):
44+ kwargs.setdefault('allow_redirects', False)
45+ return request('head', url, **kwargs)
48+def post(url, data=None, json=None, **kwargs):
49+ return request('post', url, data=data, json=json, **kwargs)
52+def put(url, data=None, **kwargs):
53+ return request('put', url, data=data, **kwargs)
56+def patch(url, data=None, **kwargs):
57+ return request('patch', url, data=data, **kwargs)
60+def delete(url, **kwargs):
61+ return request('delete', url, **kwargs)