Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions python/ola/ClientWrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ def __init__(self, time_ms, callback):
def __cmp__(self, other):
return cmp(self._run_at, other._run_at)

def __lt__(self, other):
return self._run_at < other._run_at

def TimeLeft(self, now):
"""Get the time remaining before this event triggers.

Expand Down
6 changes: 5 additions & 1 deletion python/ola/OlaClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -1293,7 +1293,11 @@ def _RDMMessage(self, universe, uid, sub_device, param_id, callback, data,
request.uid.device_id = uid.device_id
request.sub_device = sub_device
request.param_id = param_id
request.data = data
if sys.version >= '3.2':
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing dotted versions with string comparison means that this will return False on the current version of Python, which was probably not the intention here.

request.data = eval(data)[0] if data else bytes(data, 'utf-8')
else:
#request.data = eval(data)[0] if data else data # started breaking (MultiDim), 2019-10-31
request.data = data # works, 2019-10-31
request.is_set = set
request.include_raw_response = include_frames
try:
Expand Down
19 changes: 14 additions & 5 deletions python/ola/PidStore.py
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ def _AccountForMultiplierPack(self, value):
raise ArgsValidationError(
'Conversion will lose data: %d -> %d' %
(new_value, (new_value / multiplier * multiplier)))
new_value = new_value / multiplier
new_value = int(new_value / multiplier)

else:
try:
Expand Down Expand Up @@ -616,7 +616,10 @@ def Pack(self, args):
(self.name, self.min))

try:
data = struct.unpack('%ds' % arg_size, arg)
if sys.version >= '3.2':
data = struct.unpack('%ds' % arg_size, bytes(arg, 'utf8'))
else:
data = struct.unpack('%ds' % arg_size, arg)
except struct.error as e:
raise ArgsValidationError("Can't pack data: %s" % e)
return data[0], 1
Expand All @@ -636,7 +639,10 @@ def Unpack(self, data):
except struct.error as e:
raise UnpackException(e)

return value[0].rstrip('\x00')
if sys.version >= '3.2':
return value[0].rstrip(bytes('\x00', 'utf-8')).decode('utf-8')
else:
return value[0].rstrip('\x00')

def GetDescription(self, indent=0):
indent = ' ' * indent
Expand Down Expand Up @@ -778,7 +784,10 @@ def Pack(self, args):
raise ArgsValidationError('Too many arguments, expected %d, got %d' %
(arg_offset, len(args)))

return ''.join(data), arg_offset
if sys.version >= '3.2':
return ''.join(str(data)), arg_offset
else:
return ''.join(data), arg_offset

elif self._group_size == 0:
return '', 0
Expand All @@ -794,7 +803,7 @@ def Pack(self, args):
if arg_offset < len(args):
raise ArgsValidationError('Too many arguments, expected %d, got %d' %
(arg_offset, len(args)))
return ''.join(data), arg_offset
return ''.join(str(data)), arg_offset

def Unpack(self, data):
"""Unpack binary data.
Expand Down