peewee_test: Added function 'int_from_list' and used bool() and boolean to interger correspondance to clean up code
This commit is contained in:
parent
433c35b5b1
commit
2c638f3968
|
|
@ -42,19 +42,23 @@ class Event(BaseModel):
|
||||||
r = self._repeat
|
r = self._repeat
|
||||||
for _ in range(7):
|
for _ in range(7):
|
||||||
r, m = divmod(r, 2)
|
r, m = divmod(r, 2)
|
||||||
bit_list.append(True if m else False)
|
bit_list.append(bool(m))
|
||||||
return bit_list
|
return bit_list
|
||||||
|
|
||||||
@repeat.setter
|
@repeat.setter
|
||||||
def repeat(self, bit_list):
|
def repeat(self, bit_list):
|
||||||
|
self._repeat = int_from_list(bit_list)
|
||||||
|
self.save()
|
||||||
|
|
||||||
|
|
||||||
|
def int_from_list(bit_list):
|
||||||
if len(bit_list) != 7:
|
if len(bit_list) != 7:
|
||||||
raise ValueError(f"Given list is of length {len(bit_list)} "
|
raise ValueError(f"Given list is of length {len(bit_list)} "
|
||||||
f"instead of 7")
|
f"instead of 7")
|
||||||
reduced = 0
|
reduced = 0
|
||||||
for i, b in enumerate(bit_list):
|
for i, b in enumerate(bit_list):
|
||||||
reduced += (1 if b else 0) * 2**i
|
reduced += b * 2**i
|
||||||
self._repeat = reduced
|
return reduced
|
||||||
self.save()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
@ -80,14 +84,14 @@ if __name__ == "__main__":
|
||||||
Event(name='test event',
|
Event(name='test event',
|
||||||
start_date=datetime.now(),
|
start_date=datetime.now(),
|
||||||
schedule=s1,
|
schedule=s1,
|
||||||
_repeat=127,
|
_repeat=int_from_list([True for _ in range(7)]),
|
||||||
).save()
|
).save()
|
||||||
|
|
||||||
Event(name='test event 2',
|
Event(name='test event 2',
|
||||||
start_date=datetime.now(),
|
start_date=datetime.now(),
|
||||||
stop_date=datetime.now()+timedelta(days=2),
|
stop_date=datetime.now()+timedelta(days=2),
|
||||||
schedule=s2,
|
schedule=s2,
|
||||||
_repeat=1,
|
_repeat=int_from_list([True] + [False for _ in range(6)]),
|
||||||
).save()
|
).save()
|
||||||
|
|
||||||
events = Event.select()
|
events = Event.select()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue