Skip to content

Commit 37c7898

Browse files
authored
Merge pull request #5 from s-light/add_getitem
added __getitem__ for iterable behavior
2 parents be4917d + 13bb77f commit 37c7898

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

adafruit_fancyled/adafruit_fancyled.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,21 @@ def __repr__(self):
114114
def __str__(self):
115115
return "(%s, %s, %s)" % (self.red, self.green, self.blue)
116116

117+
def __len__(self):
118+
"""Retrieve total number of color-parts available."""
119+
return 3
120+
121+
def __getitem__(self, key):
122+
"""Retrieve red, green or blue value as iterable."""
123+
if key == 0:
124+
return self.red
125+
elif key == 1:
126+
return self.green
127+
elif key == 2:
128+
return self.blue
129+
else:
130+
raise IndexError
131+
117132
def pack(self):
118133
"""'Pack' a `CRGB` color into a 24-bit RGB integer.
119134
@@ -164,6 +179,21 @@ def __repr__(self):
164179
def __str__(self):
165180
return "(%s, %s, %s)" % (self.hue, self.saturation, self.value)
166181

182+
def __len__(self):
183+
"""Retrieve total number of 'color-parts' available."""
184+
return 3
185+
186+
def __getitem__(self, key):
187+
"""Retrieve hue, saturation or value as iterable."""
188+
if key == 0:
189+
return self.hue
190+
elif key == 1:
191+
return self.saturation
192+
elif key == 2:
193+
return self.value
194+
else:
195+
raise IndexError
196+
167197
def pack(self):
168198
"""'Pack' a `CHSV` color into a 24-bit RGB integer.
169199

0 commit comments

Comments
 (0)