Adafruit_CircuitPython_NeoPixel icon indicating copy to clipboard operation
Adafruit_CircuitPython_NeoPixel copied to clipboard

Set pixels using slice with single color / multiple colors

Open JonLevin25 opened this issue 4 years ago • 0 comments

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 :)

JonLevin25 avatar Dec 03 '20 08:12 JonLevin25