Skip to content

Commit 72e8f38

Browse files
authored
Merge pull request #37 from jerryneedell/jerryn_order
throw error if color tuple/pixel_order mismatch
2 parents d5c5f4f + 16ea240 commit 72e8f38

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

neopixel.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ def _set_item(self, index, value):
131131
b = 0
132132
w = 0
133133
if isinstance(value, int):
134+
if value>>24:
135+
raise ValueError("only bits 0->23 valid for integer input")
134136
r = value >> 16
135137
g = (value >> 8) & 0xff
136138
b = value & 0xff
@@ -142,11 +144,11 @@ def _set_item(self, index, value):
142144
r = 0
143145
g = 0
144146
b = 0
145-
elif len(value) == self.bpp:
146-
if self.bpp == 3:
147-
r, g, b = value
148-
else:
149-
r, g, b, w = value
147+
elif (len(value) == self.bpp) or ((len(value) == 3) and (self.bpp == 4)):
148+
r, g, b, w = value if len(value) == 4 else value+(0,)
149+
else:
150+
raise ValueError("Color tuple size does not match pixel_order.")
151+
150152
self.buf[offset + self.order[0]] = r
151153
self.buf[offset + self.order[1]] = g
152154
self.buf[offset + self.order[2]] = b

0 commit comments

Comments
 (0)