diff --git a/erpnext/erpnext_integrations/doctype/amazon_mws_settings/amazon_mws_api.py b/erpnext/erpnext_integrations/doctype/amazon_mws_settings/amazon_mws_api.py index f713684d37c..7fd3b34fd5d 100755 --- a/erpnext/erpnext_integrations/doctype/amazon_mws_settings/amazon_mws_api.py +++ b/erpnext/erpnext_integrations/doctype/amazon_mws_settings/amazon_mws_api.py @@ -7,6 +7,7 @@ from __future__ import unicode_literals import urllib +from urllib.parse import quote import hashlib import hmac import base64 @@ -68,8 +69,9 @@ def calc_md5(string): """ md = hashlib.md5() md.update(string) - return base64.encodestring(md.digest()).strip('\n') if six.PY2 \ - else base64.encodebytes(md.digest()).decode().strip() + return base64.encodebytes(md.digest()).decode().strip() + + def remove_empty(d): """ @@ -177,7 +179,6 @@ class MWS(object): 'SignatureMethod': 'HmacSHA256', } params.update(extra_data) - quote = urllib.quote if six.PY2 else urllib.parse.quote request_description = '&'.join(['%s=%s' % (k, quote(params[k], safe='-_.~')) for k in sorted(params)]) signature = self.calc_signature(method, request_description) url = '%s%s?%s&Signature=%s' % (self.domain, self.uri, request_description, quote(signature)) diff --git a/erpnext/regional/germany/utils/datev/datev_csv.py b/erpnext/regional/germany/utils/datev/datev_csv.py index 826d51f7128..122c15fd811 100644 --- a/erpnext/regional/germany/utils/datev/datev_csv.py +++ b/erpnext/regional/germany/utils/datev/datev_csv.py @@ -55,8 +55,7 @@ def get_datev_csv(data, filters, csv_class): quoting=QUOTE_NONNUMERIC ) - if not six.PY2: - data = data.encode('latin_1', errors='replace') + data = data.encode('latin_1', errors='replace') header = get_header(filters, csv_class) header = ';'.join(header).encode('latin_1', errors='replace') diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index 7f25812b47d..843fb012b91 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -534,11 +534,9 @@ def santize_einvoice_fields(einvoice): return einvoice def safe_json_load(json_string): - JSONDecodeError = ValueError if six.PY2 else json.JSONDecodeError - try: return json.loads(json_string) - except JSONDecodeError as e: + except json.JSONDecodeError as e: # print a snippet of 40 characters around the location where error occured pos = e.pos start, end = max(0, pos-20), min(len(json_string)-1, pos+20)