Add Py2 compatibility

0.8.x
Michał Sałaban 3 years ago
parent 1d73743c0e
commit cd1d5ff298

@ -309,10 +309,10 @@ class JSONRPCDaemon(object):
} }
""" """
if isinstance(blobs, (bytes, str)): if isinstance(blobs, (six.binary_type,) + six.string_types):
blobs = [blobs] blobs = [blobs]
blobs = [binascii.hexlify(b).decode() if isinstance(b, bytes) else six.ensure_text(b) for b in blobs] blobs = [binascii.hexlify(b).decode() if isinstance(b, six.binary_type) else six.ensure_text(b) for b in blobs]
return self.raw_jsonrpc_request('submit_block', params=blobs) return self.raw_jsonrpc_request('submit_block', params=blobs)
@ -618,7 +618,7 @@ class JSONRPCDaemon(object):
} }
""" """
if isinstance(ip, (str, int)): # If single element paramters if isinstance(ip, six.string_types + six.integer_types): # If single element paramters
user_bans = [{ user_bans = [{
'ip': ip, 'ip': ip,
'ban': ban, 'ban': ban,
@ -650,7 +650,7 @@ class JSONRPCDaemon(object):
raise ValueError('"seconds" can not be less than zero') raise ValueError('"seconds" can not be less than zero')
ban = {} ban = {}
if isinstance(curr_ip, int): if isinstance(curr_ip, six.integer_types):
ban['ip'] = curr_ip ban['ip'] = curr_ip
else: else:
ban['host'] = curr_ip ban['host'] = curr_ip
@ -735,7 +735,7 @@ class JSONRPCDaemon(object):
""" """
# Coerce amounts paramter # Coerce amounts paramter
if isinstance(amounts, (int, Decimal)): if isinstance(amounts, (Decimal,) + six.integer_types):
amounts = [to_atomic(amounts) if isinstance(amounts, Decimal) else amounts] amounts = [to_atomic(amounts) if isinstance(amounts, Decimal) else amounts]
elif amounts is None: elif amounts is None:
raise ValueError('amounts is None') raise ValueError('amounts is None')
@ -803,7 +803,7 @@ class JSONRPCDaemon(object):
} }
""" """
if not isinstance(grace_blocks, (int, type(None))): if not isinstance(grace_blocks, (type(None),) + six.integer_types):
raise TypeError("grace_blocks is not an int") raise TypeError("grace_blocks is not an int")
elif grace_blocks is not None and grace_blocks < 0: elif grace_blocks is not None and grace_blocks < 0:
raise ValueError("grace_blocks < 0") raise ValueError("grace_blocks < 0")
@ -1175,7 +1175,7 @@ class JSONRPCDaemon(object):
if not categories: if not categories:
return self.raw_request('/set_log_categories') return self.raw_request('/set_log_categories')
elif isinstance(categories, str): elif isinstance(categories, six.string_types):
categories = categories.split(',') categories = categories.split(',')
# Validate categories # Validate categories
@ -1373,8 +1373,8 @@ class JSONRPCDaemon(object):
} }
""" """
if isinstance(index, int): # single element if isinstance(index, six.integer_types): # single element
outputs = [{'amount': amount if isinstance(amount, int) else to_atomic(amount), 'index': index}] outputs = [{'amount': amount if isinstance(amount, six.integer_types) else to_atomic(amount), 'index': index}]
else: # multiple elements else: # multiple elements
if len(amount) != len(index): if len(amount) != len(index):
raise ValueError('length of amount and index do not match') raise ValueError('length of amount and index do not match')
@ -1382,7 +1382,7 @@ class JSONRPCDaemon(object):
outputs = [] outputs = []
for a, i in zip(amount, index): for a, i in zip(amount, index):
outputs.append({ outputs.append({
'amount': a if isinstance(a, int) else to_atomic(a), 'amount': a if isinstance(a, six.integer_types) else to_atomic(a),
'index': i}) 'index': i})
return self.raw_request('/get_outs', data={ return self.raw_request('/get_outs', data={
@ -1485,7 +1485,7 @@ class JSONRPCDaemon(object):
if not hashes: if not hashes:
return [] return []
else: else:
if isinstance(hashes, str): if isinstance(hashes, six.string_types):
hashes = [hashes] hashes = [hashes]
else: else:
coerce_compatible_str = lambda s: six.ensure_text(str(s)) coerce_compatible_str = lambda s: six.ensure_text(str(s))

@ -3,6 +3,7 @@ import json
import logging import logging
import os import os
import responses import responses
import six
from monero.const import NET_STAGE from monero.const import NET_STAGE
from monero.daemon import Daemon from monero.daemon import Daemon
@ -582,7 +583,7 @@ class JSONRPCDaemonTestCase(JSONTestCase):
json=self._read('test_set_bans.json'), json=self._read('test_set_bans.json'),
status=200) status=200)
resp = self.backend.set_bans('188.165.17.204', True, 3600) resp = self.backend.set_bans(six.ensure_text('188.165.17.204'), True, 3600)
self.assertEqual(resp['status'], 'OK') self.assertEqual(resp['status'], 'OK')
@ -593,7 +594,7 @@ class JSONRPCDaemonTestCase(JSONTestCase):
status=200) status=200)
ips = ['188.165.17.204', 1466097787, '87.98.224.124'] ips = [six.ensure_text('188.165.17.204'), 1466097787, six.ensure_text('87.98.224.124')]
bans = [True, True, False] bans = [True, True, False]
seconds = [3600, 500, 7200] seconds = [3600, 500, 7200]

Loading…
Cancel
Save