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,21 +42,25 @@ class Event(BaseModel):
|
|||
r = self._repeat
|
||||
for _ in range(7):
|
||||
r, m = divmod(r, 2)
|
||||
bit_list.append(True if m else False)
|
||||
bit_list.append(bool(m))
|
||||
return bit_list
|
||||
|
||||
@repeat.setter
|
||||
def repeat(self, bit_list):
|
||||
if len(bit_list) != 7:
|
||||
raise ValueError(f"Given list is of length {len(bit_list)} "
|
||||
f"instead of 7")
|
||||
reduced = 0
|
||||
for i, b in enumerate(bit_list):
|
||||
reduced += (1 if b else 0) * 2**i
|
||||
self._repeat = reduced
|
||||
self._repeat = int_from_list(bit_list)
|
||||
self.save()
|
||||
|
||||
|
||||
def int_from_list(bit_list):
|
||||
if len(bit_list) != 7:
|
||||
raise ValueError(f"Given list is of length {len(bit_list)} "
|
||||
f"instead of 7")
|
||||
reduced = 0
|
||||
for i, b in enumerate(bit_list):
|
||||
reduced += b * 2**i
|
||||
return reduced
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from datetime import datetime, date, time, timedelta
|
||||
|
||||
|
|
@ -80,14 +84,14 @@ if __name__ == "__main__":
|
|||
Event(name='test event',
|
||||
start_date=datetime.now(),
|
||||
schedule=s1,
|
||||
_repeat=127,
|
||||
_repeat=int_from_list([True for _ in range(7)]),
|
||||
).save()
|
||||
|
||||
Event(name='test event 2',
|
||||
start_date=datetime.now(),
|
||||
stop_date=datetime.now()+timedelta(days=2),
|
||||
schedule=s2,
|
||||
_repeat=1,
|
||||
_repeat=int_from_list([True] + [False for _ in range(6)]),
|
||||
).save()
|
||||
|
||||
events = Event.select()
|
||||
|
|
|
|||
Loading…
Reference in a new issue