diff --git a/peewee_test.py b/peewee_test.py index 3430a55..2e95d3a 100644 --- a/peewee_test.py +++ b/peewee_test.py @@ -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()