From 59996677d7133c3f4207a8c0a5a76ad0fd912276 Mon Sep 17 00:00:00 2001 From: giovannihenriksen <62469630+giovannihenriksen@users.noreply.github.com> Date: Sun, 21 Feb 2021 13:56:13 +0100 Subject: [PATCH 1/2] Fix decimal learning/lapse steps Fixes bug where usage of decimals (0.5) as steps would not be allowed by the simulator --- src/anki_simulator/gui/dialogs.py | 13 ++++++++++--- src/anki_simulator/review_simulator.py | 8 ++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/anki_simulator/gui/dialogs.py b/src/anki_simulator/gui/dialogs.py index cc2b953..74b343c 100644 --- a/src/anki_simulator/gui/dialogs.py +++ b/src/anki_simulator/gui/dialogs.py @@ -52,9 +52,16 @@ def num_to_user(n: Union[int, float]): return " ".join(map(num_to_user, l)) +def isFloat(value): + try: + float(value) + return True + except ValueError: + return False + def stepsAreValid(steps: List[str]): for step in steps: - if not step.isdecimal(): + if not isFloat(step): return False if len(steps) == 0: return False @@ -471,13 +478,13 @@ def simulate(self): self.dialog.learningStepsTextfield.setFocus() return learningSteps = [ - int(i) for i in self.dialog.learningStepsTextfield.text().split() + float(i) for i in self.dialog.learningStepsTextfield.text().split() ] if not stepsAreValid(self.dialog.lapseStepsTextfield.text().split()): showInfo("Please correctly enter 'Lapse steps' (e.g. '30 1440')") self.dialog.lapseStepsTextfield.setFocus() return - lapseSteps = [int(i) for i in self.dialog.lapseStepsTextfield.text().split()] + lapseSteps = [float(i) for i in self.dialog.lapseStepsTextfield.text().split()] graduatingInterval = int(self.dialog.graduatingIntervalSpinbox.value()) newLapseInterval = float(self.dialog.newLapseIntervalSpinbox.value()) / 100 maxInterval = int(self.dialog.maximumIntervalSpinbox.value()) diff --git a/src/anki_simulator/review_simulator.py b/src/anki_simulator/review_simulator.py index fa69b6c..6192e88 100644 --- a/src/anki_simulator/review_simulator.py +++ b/src/anki_simulator/review_simulator.py @@ -54,8 +54,8 @@ def __init__( new_cards_per_day: int, interval_modifier: int, max_reviews_per_day: int, - learning_steps: List[int], - lapse_steps: List[int], + learning_steps: List[float], + lapse_steps: List[float], graduating_interval: int, new_lapse_interval: int, max_interval: int, @@ -74,8 +74,8 @@ def __init__( self.newCardsPerDay: int = new_cards_per_day self.intervalModifier: int = interval_modifier self.maxReviewsPerDay: int = max_reviews_per_day - self.learningSteps: List[int] = learning_steps - self.lapseSteps: List[int] = lapse_steps + self.learningSteps: List[float] = learning_steps + self.lapseSteps: List[float] = lapse_steps self.graduatingInterval: int = graduating_interval self.newLapseInterval: int = new_lapse_interval self.maxInterval: int = max_interval From e35a846e9a1f7e66e858925729591420cd75dc72 Mon Sep 17 00:00:00 2001 From: giovannihenriksen <62469630+giovannihenriksen@users.noreply.github.com> Date: Sun, 21 Feb 2021 13:58:09 +0100 Subject: [PATCH 2/2] Update changelog and version number --- CHANGELOG.md | 4 ++++ src/anki_simulator/_version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be8241b..57526b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 1.1.1 - 2021-02-21 + +### Fixed +- GiovanniHenriksen: Usage of decimals in learning and lapse steps is now allowed ## [1.1] - 2021-01-30 ### Added diff --git a/src/anki_simulator/_version.py b/src/anki_simulator/_version.py index a1a5aa3..2316308 100644 --- a/src/anki_simulator/_version.py +++ b/src/anki_simulator/_version.py @@ -20,4 +20,4 @@ Version information """ -__version__ = "1.1" +__version__ = "1.1.1"