4
4
import re
5
5
import ssl
6
6
import time
7
-
8
- import six
9
- from six .moves .urllib .parse import urlencode
7
+ from urllib .parse import urlencode
10
8
11
9
from .version import VERSION , VERSION_INFO
12
10
13
11
__author__ = "EasyPost <[email protected] >"
14
12
__version__ = VERSION
15
13
version_info = VERSION_INFO
16
14
SUPPORT_EMAIL = "[email protected] "
17
- USER_AGENT = "EasyPost/v2 PythonClient/{0 } Python/{1}" . format ( VERSION , platform .python_version ())
15
+ USER_AGENT = f "EasyPost/v2 PythonClient/{ VERSION } Python/{ platform .python_version ()} "
18
16
TIMEOUT = 60
19
17
20
18
# config
42
40
raise ImportError (
43
41
"EasyPost requires an up to date requests library. "
44
42
'Update requests via "pip install -U requests" or '
45
- "contact us at {}." . format ( SUPPORT_EMAIL )
43
+ f "contact us at { SUPPORT_EMAIL } ."
46
44
)
47
45
48
46
try :
52
50
raise ImportError (
53
51
"EasyPost requires an up to date requests library. "
54
52
'Update requests via "pip install -U requests" or contact '
55
- "us at {}." . format ( SUPPORT_EMAIL )
53
+ f "us at { SUPPORT_EMAIL } ."
56
54
)
57
55
else :
58
56
if major < 1 :
59
57
raise ImportError (
60
58
"EasyPost requires an up to date requests library. Update "
61
59
'requests via "pip install -U requests" or contact us '
62
- "at {}." . format ( SUPPORT_EMAIL )
60
+ f "at { SUPPORT_EMAIL } ."
63
61
)
64
62
65
63
@@ -146,7 +144,7 @@ def convert_to_easypost_object(response, api_key, parent=None, name=None):
146
144
response = response .copy ()
147
145
cls_name = response .get ("object" , EasyPostObject )
148
146
cls_id = response .get ("id" , None )
149
- if isinstance (cls_name , six . string_types ):
147
+ if isinstance (cls_name , str ):
150
148
cls = types .get (cls_name , EasyPostObject )
151
149
elif cls_id is not None :
152
150
cls = prefixes .get (cls_id [0 : cls_id .find ("_" )], EasyPostObject )
@@ -159,14 +157,14 @@ def convert_to_easypost_object(response, api_key, parent=None, name=None):
159
157
160
158
def _utf8 (value ):
161
159
# Python3's str(bytestring) returns "b'bytestring'" so we use .decode instead
162
- if isinstance (value , six . binary_type ):
160
+ if isinstance (value , bytes ):
163
161
return value .decode ("utf-8" )
164
162
return value
165
163
166
164
167
165
def encode_url_params (params ):
168
166
converted_params = []
169
- for key , value in sorted (six . iteritems ( params )):
167
+ for key , value in sorted (params . items ( )):
170
168
if value is None :
171
169
continue # don't add Nones to the query
172
170
elif isinstance (value , datetime .datetime ):
@@ -191,7 +189,7 @@ def _objects_to_ids(cls, param):
191
189
if isinstance (param , Resource ):
192
190
return {"id" : param .id }
193
191
elif isinstance (param , dict ):
194
- return {k : cls ._objects_to_ids (v ) for k , v in six . iteritems ( param )}
192
+ return {k : cls ._objects_to_ids (v ) for k , v in param . items ( )}
195
193
elif isinstance (param , list ):
196
194
return [cls ._objects_to_ids (v ) for v in param ]
197
195
else :
@@ -213,7 +211,7 @@ def request_raw(self, method, url, params=None, apiKeyRequired=True):
213
211
raise Error (
214
212
"No API key provided. Set an API key via \" easypost.api_key = 'APIKEY'. "
215
213
"Your API keys can be found in your EasyPost dashboard, or you can email us "
216
- "at {} for assistance." . format ( SUPPORT_EMAIL )
214
+ f "at { SUPPORT_EMAIL } for assistance."
217
215
)
218
216
219
217
abs_url = "%s%s" % (api_base , url or "" )
@@ -251,9 +249,7 @@ def request_raw(self, method, url, params=None, apiKeyRequired=True):
251
249
elif request_lib == "requests" :
252
250
http_body , http_status = self .requests_request (method , abs_url , headers , params )
253
251
else :
254
- raise Error (
255
- "Bug discovered: invalid request_lib: {}. " "Please report to {}." .format (request_lib , SUPPORT_EMAIL )
256
- )
252
+ raise Error (f"Bug discovered: invalid request_lib: { request_lib } . Please report to { SUPPORT_EMAIL } ." )
257
253
258
254
return http_body , http_status , my_api_key
259
255
@@ -274,9 +270,7 @@ def requests_request(self, method, abs_url, headers, params):
274
270
elif method == "post" or method == "put" :
275
271
data = json .dumps (params , default = _utf8 )
276
272
else :
277
- raise Error (
278
- "Bug discovered: invalid request method: {}. " "Please report to {}." .format (method , SUPPORT_EMAIL )
279
- )
273
+ raise Error (f"Bug discovered: invalid request method: { method } . Please report to { SUPPORT_EMAIL } ." )
280
274
281
275
try :
282
276
result = requests_session .request (
@@ -292,7 +286,7 @@ def requests_request(self, method, abs_url, headers, params):
292
286
except Exception as e :
293
287
raise Error (
294
288
"Unexpected error communicating with EasyPost. If this "
295
- "problem persists please let us know at {}." . format ( SUPPORT_EMAIL ) ,
289
+ f "problem persists please let us know at { SUPPORT_EMAIL } ." ,
296
290
original_exception = e ,
297
291
)
298
292
return http_body , http_status
@@ -305,16 +299,14 @@ def urlfetch_request(self, method, abs_url, headers, params):
305
299
elif method == "get" or method == "delete" :
306
300
fetch_args ["url" ] = add_params_to_url (abs_url , params )
307
301
else :
308
- raise Error (
309
- "Bug discovered: invalid request method: {}. Please report " "to {}." .format (method , SUPPORT_EMAIL )
310
- )
302
+ raise Error (f"Bug discovered: invalid request method: { method } . Please report to { SUPPORT_EMAIL } ." )
311
303
312
304
try :
313
305
result = urlfetch .fetch (** fetch_args )
314
306
except Exception as e :
315
307
raise Error (
316
308
"Unexpected error communicating with EasyPost. "
317
- "If this problem persists, let us know at {}." . format ( SUPPORT_EMAIL ) ,
309
+ f "If this problem persists, let us know at { SUPPORT_EMAIL } ." ,
318
310
original_exception = e ,
319
311
)
320
312
@@ -404,7 +396,7 @@ def construct_from(cls, values, api_key=None, parent=None, name=None):
404
396
def refresh_from (self , values , api_key ):
405
397
self ._api_key = api_key
406
398
407
- for k , v in sorted (six . iteritems ( values )):
399
+ for k , v in sorted (values . items ( )):
408
400
if k == "id" and self .id != v :
409
401
self .id = v
410
402
if k in self ._immutable_values :
@@ -427,7 +419,7 @@ def flatten_unsaved(self):
427
419
def __repr__ (self ):
428
420
type_string = ""
429
421
430
- if isinstance (self .get ("object" ), six . string_types ):
422
+ if isinstance (self .get ("object" ), str ):
431
423
type_string = " %s" % self .get ("object" ).encode ("utf8" )
432
424
433
425
json_string = json .dumps (self .to_dict (), sort_keys = True , indent = 2 , cls = EasyPostObjectEncoder )
0 commit comments