Coverage for /Users/fmorton/GitHub/Birdbrain-Python-Library-2/src/birdbrain_state.py: 96%
28 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-10-14 15:48 -0400
« prev ^ index » next coverage.py v7.8.0, created at 2025-10-14 15:48 -0400
1class BirdbrainState:
2 def __init__(self):
3 self.cache = {}
4 self.display_map = BirdbrainState.microbit_empty_display_map()
6 def display_map_clear(self):
7 self.display_map = BirdbrainState.microbit_empty_display_map
9 def set_list(self, list):
10 self.display_map = list
12 def set_pixel(self, x, y, value):
13 self.display_map[((x * 5) + y - 6)] = value
15 def display_map_normalize(self):
16 return(["true" if ((pixel == 1) or (pixel is True)) else "false" for pixel in self.display_map])
18 def display_map_as_string(self, list = None):
19 if list is not None: self.set_list(list)
21 return "/".join(self.display_map_normalize())
23 def set(self, name, value):
24 if value == None:
25 if name in self.cache:
26 self.cache.pop(name)
27 else:
28 self.cache[name] = value
30 return value
32 def get(self, name):
33 if name in self.cache:
34 return self.cache[name]
35 else:
36 return None
38 @classmethod
39 def microbit_empty_display_map(self):
40 return([0] * 25)