Skip to content

Commit 9f8b5b8

Browse files
authored
Python3 compatibility (#66) (#67)
* Fixes for Python 3 compatibility * remove unneeded imports
1 parent eaaf181 commit 9f8b5b8

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/led_effect.py

+16-12
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ def __getitem__(self, a):
2424
return super(colorArray, self).__getitem__(
2525
slice(a*3, a*3+3))
2626
if isinstance(a, slice):
27-
return colorArray(
27+
start = a.start*3 if a.start != None else None
28+
stop = a.stop*3 if a.stop != None else None
29+
return colorArray(
2830
super(colorArray, self).__getitem__(
29-
slice(a.start*3, a.stop*3, a.step)))
31+
slice(start, stop, a.step)))
3032
def __getslice__(self, a, b):
3133
return self.__getitem__(slice(a,b))
3234
def __setitem__(self, a, v):
@@ -37,19 +39,19 @@ def __setitem__(self, a, v):
3739
def __len__(self):
3840
return super(colorArray, self).__len__() // 3
3941
def reverse(self):
40-
self[:] = [c for cl in range(len(self)-1,-1, -1)
41-
for c in self[cl]]
42+
self.__init__([c for cl in range(len(self)-1,-1, -1)
43+
for c in self[cl]])
4244
def shift(self, shift=1, direction=True):
4345
if direction:
4446
#shift array to the right
45-
self[:] = self[-shift:] + self[:-shift]
47+
self.__init__(self[-shift:] + self[:-shift])
4648
else:
4749
#shift array to the left
48-
self[:] = self[shift:] + self[:shift]
50+
self.__init__(self[shift:] + self[:shift])
4951
def padLeft(self, v, a):
50-
self[:] = v * a + self[:]
52+
self.__init__(v * a + self)
5153
def padRight(self, v, a):
52-
self[:] = self[:] + v * a
54+
self += v * a
5355

5456
######################################################################
5557
# LED Effect handler
@@ -222,9 +224,11 @@ def _getFrames(self, eventtime):
222224
chain.prev_data = None # workaround to force update of dotstars
223225
if not self.shutdown:
224226
chain.led_helper.update_func(chain.led_helper.led_state, None)
225-
226-
next_eventtime=min(self.effects, key=lambda x: x.nextEventTime)\
227-
.nextEventTime
227+
if self.effects:
228+
next_eventtime=min(self.effects, key=lambda x: x.nextEventTime)\
229+
.nextEventTime
230+
else:
231+
next_eventtime = eventtime
228232
# run at least with 10Hz
229233
next_eventtime=min(next_eventtime, eventtime + 0.1)
230234
return next_eventtime
@@ -687,7 +691,7 @@ def __init__(self, **kwargs):
687691

688692
comet = colorArray([a * b for a, b in zip(gradient,decayTable)])
689693

690-
comet.padRight([0.0,0.0,0.0], self.ledCount)
694+
comet.padRight([0.0,0.0,0.0], self.ledCount - len(comet))
691695

692696
if self.direction: comet.reverse()
693697

0 commit comments

Comments
 (0)