adafruit / Adafruit_CircuitPython_NeoPixel

CircuitPython drivers for neopixels.
MIT License
304 stars 98 forks source link

Set pixels using slice with single color / multiple colors #97

Open JonLevin25 opened 3 years ago

JonLevin25 commented 3 years ago

Playing around with NeoPixel I thought of building some stuff on top using the slice syntax i.e pixels[:len(pixels)//2] = (255, 0 ,0) Which currently fails as the colors tuple must be at least the length of the slice

Using pixels.fill((255,0,0) could work, but only if you start at the beginning, not for arbitrary slices (i.e setting middle third with third = len(pixels)//3 then pixels[third: 2 * third] = (255, 0, 0)

Bonus: if a tuple is given, but not of the same length, It could be cool if it just repeated, meaning: pixels[:7] = (R, G, B) would set the pixels (R, G, B, R, G, B, R)

Since this would have thrown an error before, it should be backwards-compatible.

I realize all this can be done manually but since slices are already supported it seems like a nice intuitive feature :)