Я обновил python2 в Odoo v11 до python3. После этого я отредактировал свои дополнения. Один из моих аддонов, я получаю ошибку.
result = method(recs, *args, **kwargs)
File "D:\Odoo 11.0\server\addons\addons-
trbase\l10n_tr_account_einvoice\models\account_einvoice_provider.py",
line 698, in action_einvoice_get_invoices
self.einvoice_get_invoices()
File "D:\Odoo 11.0\server\addons\addons- unauth\l10n_tr_account_einvoice_provider_isis\models\account_einvoice_provider.py", line 272, in einvoice_get_invoices
bytedata = base64.decodestring(result.ByteData)
File "D:\Odoo 11.0\python\lib\base64.py", line 552, in decodebytes
_input_type_check(s)
File "D:\Odoo 11.0\python\lib\base64.py", line 520, in _input_type_check
raise TypeError(msg) from err
TypeError: expected bytes-like object, not Text
Python говорит, что;
Устаревший псевдоним декодированных байтов ().
Устаревший с версии 3.1.
Я пытаюсь decodebytes () вместо decodestring (), но это не работает.
Вот мой метод класса:
def einvoice_get_invoices(self):
if self.provider != 'isis':
return super(AccountEinvoiceProvider, self).einvoice_get_invoices()
else:
try:
client = self.isis_get_client()
count = 0
while count < 50:
count += 1
result = client.service.GetSingleEnvelope(self.company_id.vat[2:])
self.isis_check_error(result)
if result.EnvelopeUUID:
bytedata = base64.decodestring(result.ByteData)
buffer = io.BytesIO(bytedata)
if zipfile.is_zipfile(buffer):
file = zipfile.ZipFile(buffer, 'r')
for name in file.namelist():
bytedata = file.read(name)
_logger.debug("Processing Envelope: %s" % bytedata.decode('utf-8'))
self.einvoice_process_envelope(bytedata)
else:
_logger.info("Invalid Zip File! EnvelopeUUID= %s" % result.EnvelopeUUID)
else:
count = 50
return True
except WebFault as e:
_logger.error(_('E-Invoice Provider WebService Error!') + '\n\n' + e.message)
return False
Как я могу это исправить?