+ def check_range(self, colour):
+ """ Ensure a colour value is legal """
+ if not (type(colour) == tuple or type(colour) == int):
+ raise TypeError('colour expeted to be tuple or int')
+ elif not len(colour) == 3:
+ raise ValueError('colour tuples require exactly 3 items (RGB)')
+
+ if type(colour) == int:
+ return colour >= 0 and colour <= 255
+ else:
+ return self.check_range(colour[0]) and self.check_range(colour[1]) and self.check_range(colour[2])
+