3030* Author(s): Damien P. George, Scott Shawcroft, Carter Nelson, Roy Hooper
3131"""
3232
33+ # pylint: disable=ungrouped-imports
34+ import sys
3335import digitalio
3436from neopixel_write import neopixel_write
35- try :
36- import _pixelbuf
37- except ImportError :
37+
38+ if sys .implementation .version [0 ] < 5 :
3839 import adafruit_pypixelbuf as _pixelbuf
40+ else :
41+ try :
42+ import _pixelbuf
43+ except ImportError :
44+ import adafruit_pypixelbuf as _pixelbuf
3945
4046
4147__version__ = "0.0.0-auto.0"
4248__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel.git"
4349
4450
4551# Pixel color order constants
46- RGB = ' RGB'
52+ RGB = " RGB"
4753"""Red Green Blue"""
48- GRB = ' GRB'
54+ GRB = " GRB"
4955"""Green Red Blue"""
50- RGBW = ' RGBW'
56+ RGBW = " RGBW"
5157"""Red Green Blue White"""
52- GRBW = ' GRBW'
58+ GRBW = " GRBW"
5359"""Green Red Blue White"""
5460
5561
@@ -111,25 +117,20 @@ class NeoPixel(_pixelbuf.PixelBuf):
111117 Overall brightness of the pixel (0 to 1.0)
112118
113119 """
114- bpp = None
115- n = 0
116-
117- def __init__ (self , pin , n , * , bpp = 3 , brightness = 1.0 , auto_write = True , pixel_order = None ):
118- self .bpp = bpp
119- self .n = n
120120
121+ def __init__ (
122+ self , pin , n , * , bpp = 3 , brightness = 1.0 , auto_write = True , pixel_order = None
123+ ):
121124 if not pixel_order :
122125 pixel_order = GRB if bpp == 3 else GRBW
123126 else :
124- self .bpp = bpp = len (pixel_order )
125127 if isinstance (pixel_order , tuple ):
126- order_chars = RGBW
127- order = []
128- for char_no , order in enumerate (pixel_order ):
129- order [pixel_order ] = order_chars [char_no ]
130- pixel_order = '' .join (order )
128+ order_list = [RGBW [order ] for order in pixel_order ]
129+ pixel_order = "" .join (order_list )
131130
132- super ().__init__ (n , brightness = brightness , byteorder = pixel_order , auto_write = auto_write )
131+ super ().__init__ (
132+ n , brightness = brightness , byteorder = pixel_order , auto_write = auto_write
133+ )
133134
134135 self .pin = digitalio .DigitalInOut (pin )
135136 self .pin .direction = digitalio .Direction .OUTPUT
@@ -149,6 +150,13 @@ def __exit__(self, exception_type, exception_value, traceback):
149150 def __repr__ (self ):
150151 return "[" + ", " .join ([str (x ) for x in self ]) + "]"
151152
153+ @property
154+ def n (self ):
155+ """
156+ The number of neopixels in the chain (read-only)
157+ """
158+ return len (self )
159+
152160 def write (self ):
153161 """.. deprecated: 1.0.0
154162
0 commit comments