44
55from lob import api_requestor
66from lob .compat import string_type
7+ from lob .constants import TIMEOUT_DEFAULT
78
89
910def lob_format (resp ):
@@ -86,16 +87,16 @@ def __str__(self):
8687
8788class APIResource (LobObject ):
8889 @classmethod
89- def retrieve (cls , id , ** params ):
90+ def retrieve (cls , id , timeout = TIMEOUT_DEFAULT , ** params ):
9091 requestor = api_requestor .APIRequestor ()
91- response = requestor .request ('get' , '%s/%s' % (cls .endpoint , id ), params )
92+ response = requestor .request ('get' , '%s/%s' % (cls .endpoint , id ), params , timeout = timeout )
9293 return lob_format (response )
9394
9495
9596# API Operations
9697class ListableAPIResource (APIResource ):
9798 @classmethod
98- def list (cls , ** params ):
99+ def list (cls , timeout = TIMEOUT_DEFAULT , ** params ):
99100 for key , value in params .copy ().items ():
100101 if isinstance (params [key ], dict ):
101102 for subKey in value :
@@ -105,31 +106,31 @@ def list(cls, **params):
105106 params [str (key ) + '[]' ] = params [key ]
106107 del params [key ]
107108 requestor = api_requestor .APIRequestor ()
108- response = requestor .request ('get' , cls .endpoint , params )
109+ response = requestor .request ('get' , cls .endpoint , params , timeout = timeout )
109110 return lob_format (response )
110111
111112
112113class DeleteableAPIResource (APIResource ):
113114 @classmethod
114- def delete (cls , id ):
115+ def delete (cls , id , timeout = TIMEOUT_DEFAULT ):
115116 requestor = api_requestor .APIRequestor ()
116- response = requestor .request ('delete' , '%s/%s' % (cls .endpoint , id ))
117+ response = requestor .request ('delete' , '%s/%s' % (cls .endpoint , id ), timeout = timeout )
117118 return lob_format (response )
118119
119120
120121class CreateableAPIResource (APIResource ):
121122 @classmethod
122- def create (cls , ** params ):
123+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
123124 requestor = api_requestor .APIRequestor ()
124- response = requestor .request ('post' , cls .endpoint , params )
125+ response = requestor .request ('post' , cls .endpoint , params , timeout = timeout )
125126 return lob_format (response )
126127
127128
128129class VerifiableAPIResource (APIResource ):
129130 @classmethod
130- def verify (cls , id , ** params ):
131+ def verify (cls , id , timeout = TIMEOUT_DEFAULT , ** params ):
131132 requestor = api_requestor .APIRequestor ()
132- response = requestor .request ('post' , '%s/%s/verify' % (cls .endpoint , id ), params )
133+ response = requestor .request ('post' , '%s/%s/verify' % (cls .endpoint , id ), params , timeout = timeout )
133134 return lob_format (response )
134135
135136
@@ -150,23 +151,23 @@ class Card(ListableAPIResource, DeleteableAPIResource, CreateableAPIResource):
150151 endpoint = '/cards'
151152
152153 @classmethod
153- def update (cls , card_id , ** params ):
154+ def update (cls , card_id , timeout = TIMEOUT_DEFAULT , ** params ):
154155 requestor = api_requestor .APIRequestor ()
155- response = requestor .request ('post' , '%s/%s' % (cls .endpoint , card_id ), params )
156+ response = requestor .request ('post' , '%s/%s' % (cls .endpoint , card_id ), params , timeout = timeout )
156157 return lob_format (response )
157158
158159
159160class CardOrder (ListableAPIResource , CreateableAPIResource ):
160161 endpoint = '/cards/%s/orders'
161162
162163 @classmethod
163- def create (cls , card_id , ** params ):
164+ def create (cls , card_id , timeout = TIMEOUT_DEFAULT , ** params ):
164165 requestor = api_requestor .APIRequestor ()
165- response = requestor .request ('post' , cls .endpoint % card_id , params )
166+ response = requestor .request ('post' , cls .endpoint % card_id , params , timeout = timeout )
166167 return lob_format (response )
167168
168169 @classmethod
169- def list (cls , card_id , ** params ):
170+ def list (cls , card_id , timeout = TIMEOUT_DEFAULT , ** params ):
170171 for key , value in params .copy ().items ():
171172 if isinstance (params [key ], dict ):
172173 for subKey in value :
@@ -176,67 +177,67 @@ def list(cls, card_id, **params):
176177 params [str (key ) + '[]' ] = params [key ]
177178 del params [key ]
178179 requestor = api_requestor .APIRequestor ()
179- response = requestor .request ('get' , cls .endpoint % card_id , params )
180+ response = requestor .request ('get' , cls .endpoint % card_id , params , timeout = timeout )
180181 return lob_format (response )
181182
182183
183184class Check (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
184185 endpoint = '/checks'
185186
186187 @classmethod
187- def create (cls , ** params ):
188+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
188189 if isinstance (params , dict ):
189190 if 'to_address' in params :
190191 params ['to' ] = params ['to_address' ]
191192 params .pop ('to_address' )
192193 if 'from_address' in params :
193194 params ['from' ] = params ['from_address' ]
194195 params .pop ('from_address' )
195- return super (Check , cls ).create (** params )
196+ return super (Check , cls ).create (timeout = timeout , ** params )
196197
197198
198199class Letter (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
199200 endpoint = '/letters'
200201
201202 @classmethod
202- def create (cls , ** params ):
203+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
203204 if isinstance (params , dict ):
204205 if 'from_address' in params :
205206 params ['from' ] = params ['from_address' ]
206207 params .pop ('from_address' )
207208 if 'to_address' in params :
208209 params ['to' ] = params ['to_address' ]
209210 params .pop ('to_address' )
210- return super (Letter , cls ).create (** params )
211+ return super (Letter , cls ).create (timeout = timeout , ** params )
211212
212213
213214class Postcard (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
214215 endpoint = '/postcards'
215216
216217 @classmethod
217- def create (cls , ** params ):
218+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
218219 if isinstance (params , dict ):
219220 if 'from_address' in params :
220221 params ['from' ] = params ['from_address' ]
221222 params .pop ('from_address' )
222223 if 'to_address' in params :
223224 params ['to' ] = params ['to_address' ]
224225 params .pop ('to_address' )
225- return super (Postcard , cls ).create (** params )
226+ return super (Postcard , cls ).create (timeout = timeout , ** params )
226227
227228class SelfMailer (ListableAPIResource , CreateableAPIResource , DeleteableAPIResource ):
228229 endpoint = '/self_mailers'
229230
230231 @classmethod
231- def create (cls , ** params ):
232+ def create (cls , timeout = TIMEOUT_DEFAULT , ** params ):
232233 if isinstance (params , dict ):
233234 if 'from_address' in params :
234235 params ['from' ] = params ['from_address' ]
235236 params .pop ('from_address' )
236237 if 'to_address' in params :
237238 params ['to' ] = params ['to_address' ]
238239 params .pop ('to_address' )
239- return super (SelfMailer , cls ).create (** params )
240+ return super (SelfMailer , cls ).create (timeout = timeout , ** params )
240241
241242
242243class USAutocompletion (CreateableAPIResource ):
0 commit comments