From 26b5115b2d4daaec7e7d307659ca55efddec2928 Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Fri, 26 Apr 2024 23:27:12 +0800 Subject: [PATCH] only create new fuzz range for specific easy day --- schedule/reschedule.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/schedule/reschedule.py b/schedule/reschedule.py index f37e1f0..99ba243 100644 --- a/schedule/reschedule.py +++ b/schedule/reschedule.py @@ -81,13 +81,14 @@ def apply_fuzz(self, ivl): else: return int(self.fuzz_factor * (max_ivl - min_ivl + 1) + min_ivl) else: - last_review = get_last_review_date(self.card) - due = self.card.odue if self.card.odid else self.card.due - if due > last_review + max_ivl + 2: - current_ivl = due - last_review - min_ivl, max_ivl = get_fuzz_range( - current_ivl, self.elapsed_days, current_ivl - ) + if not self.allow_to_past + last_review = get_last_review_date(self.card) + due = self.card.odue if self.card.odid else self.card.due + if due > last_review + max_ivl + 2: + current_ivl = due - last_review + min_ivl, max_ivl = get_fuzz_range( + current_ivl, self.elapsed_days, current_ivl + ) min_num_cards = math.inf best_ivl = (max_ivl + min_ivl) // 2 if self.allow_to_past else max_ivl step = (max_ivl - min_ivl) // 100 + 1