-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathPaletteCore.py
More file actions
69 lines (59 loc) · 1.37 KB
/
PaletteCore.py
File metadata and controls
69 lines (59 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class Color:
@property
def r(self):
return self._r
@r.setter
def r(self, value):
if type(value) is not int:
raise TypeError
if value < 0 or value > 255:
raise ValueError
self._r = value
@property
def g(self):
return self._g
@g.setter
def g(self, value):
if type(value) is not int:
raise TypeError
if value < 0 or value > 255:
raise ValueError
self._g = value
@property
def b(self):
return self._b
@b.setter
def b(self, value):
if type(value) is not int:
raise TypeError
if value < 0 or value > 255:
raise ValueError
self._b = value
@property
def a(self):
return self._a
@a.setter
def a(self, value):
if type(value) is not int:
raise TypeError
if value < 0 or value > 255:
raise ValueError
self._a = value
def __init__(self, r=0, g=0, b=0, a=255):
self.r = r
self.b = b
self.g = g
self.a = a
def __repr__(self):
return {'r': self.r, 'g': self.g, 'b': self.b, 'a': self.a}
class Palette:
def __init__(self):
self.palette = list()
def add_entry(self, color):
if type(color).__mro__[-2] is not Color:
raise TypeError
self.palette.append(color)
def del_index(self, idx):
self.palette = self.palette[:idx] + self.palette[idx+1:]
def del_value(self, color):
self.palette.remove(color)