MCPcopy Create free account
hub / github.com/bedroombuilds/python2rust / HasColor

Function HasColor

28_rusty_python/python/higher_order.py:1–35  ·  view source on GitHub ↗
(name, default=None, doc=None)

Source from the content-addressed store, hash-verified

1def HasColor(name, default=None, doc=None):
2 propname = "__color_{}".format(name)
3 colors = {
4 "black": 0x00000000,
5 "white": 0x00ffffff,
6 "red": 0x00ff0000,
7 "green": 0x0000ff00,
8 "blue": 0x000000ff
9 }
10
11 def getter(self):
12 return getattr(self, propname, default)
13
14 def setter(self, value):
15 if isinstance(value, int):
16 if isinstance(value, bool):
17 raise TypeError("integer colors must be ints")
18
19 if value < 0 or value > 0x00ffffff:
20 raise ValueError("integer colors must be 24-bit")
21
22 setattr(self, propname, value)
23 elif isinstance(value, str):
24 if value not in colors:
25 raise ValueError("unknown color '{}'".format(value))
26
27 setattr(self, propname, colors[value])
28 else:
29 raise TypeError("color specifications must be ints or strs")
30
31 class Inner:
32 pass
33
34 setattr(Inner, name, property(getter, setter, None, doc))
35 return Inner
36
37
38class Canvas(HasColor("foreground"), HasColor("background")):

Callers 2

CanvasClass · 0.85
ButtonClass · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected