@@ -92,7 +92,7 @@ def load_key(self, path):
92
92
self .secret = f .readline ().strip ()
93
93
return
94
94
95
- def _query (self , urlpath , data , headers = None ):
95
+ def _query (self , urlpath , data , headers = None , timeout = None ):
96
96
""" Low-level query handling.
97
97
98
98
.. note::
@@ -105,6 +105,9 @@ def _query(self, urlpath, data, headers=None):
105
105
:type data: dict
106
106
:param headers: (optional) HTTPS headers
107
107
:type headers: dict
108
+ :param timeout: (optional) if not None, a `requests.HTTPError` will be
109
+ thrown after `timeout` seconds if a response has not been received
110
+ :type timeout: number
108
111
:returns: :py:meth:`requests.Response.json`-deserialised Python object
109
112
:raises: :py:exc:`requests.HTTPError`: if response status not successful
110
113
@@ -116,21 +119,25 @@ def _query(self, urlpath, data, headers=None):
116
119
117
120
url = self .uri + urlpath
118
121
119
- self .response = self .session .post (url , data = data , headers = headers )
122
+ self .response = self .session .post (url , data = data , headers = headers ,
123
+ timeout = timeout )
120
124
121
125
if self .response .status_code not in (200 , 201 , 202 ):
122
126
self .response .raise_for_status ()
123
127
124
128
return self .response .json ()
125
129
126
130
127
- def query_public (self , method , data = None ):
131
+ def query_public (self , method , data = None , timeout = None ):
128
132
""" Performs an API query that does not require a valid key/secret pair.
129
133
130
134
:param method: API method name
131
135
:type method: str
132
136
:param data: (optional) API request parameters
133
137
:type data: dict
138
+ :param timeout: (optional) if not None, a `requests.HTTPError` will be
139
+ thrown after `timeout` seconds if a response has not been received
140
+ :type timeout: number
134
141
:returns: :py:meth:`requests.Response.json`-deserialised Python object
135
142
136
143
"""
@@ -139,15 +146,18 @@ def query_public(self, method, data=None):
139
146
140
147
urlpath = '/' + self .apiversion + '/public/' + method
141
148
142
- return self ._query (urlpath , data )
149
+ return self ._query (urlpath , data , timeout = timeout )
143
150
144
- def query_private (self , method , data = None ):
151
+ def query_private (self , method , data = None , timeout = None ):
145
152
""" Performs an API query that requires a valid key/secret pair.
146
153
147
154
:param method: API method name
148
155
:type method: str
149
156
:param data: (optional) API request parameters
150
157
:type data: dict
158
+ :param timeout: (optional) if not None, a `requests.HTTPError` will be
159
+ thrown after `timeout` seconds if a response has not been received
160
+ :type timeout: number
151
161
:returns: :py:meth:`requests.Response.json`-deserialised Python object
152
162
153
163
"""
@@ -166,7 +176,7 @@ def query_private(self, method, data=None):
166
176
'API-Sign' : self ._sign (data , urlpath )
167
177
}
168
178
169
- return self ._query (urlpath , data , headers )
179
+ return self ._query (urlpath , data , headers , timeout = timeout )
170
180
171
181
def _nonce (self ):
172
182
""" Nonce counter.
0 commit comments