Skip to content

Commit

Permalink
Update all review_date to review_datetime (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
alankan886 authored Jun 23, 2024
1 parent 6de5b77 commit b91661e
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 14 deletions.
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,13 @@ from supermemo2 import first_review, review
# using quality=4 as an example, read below for what each value from 0 to 5 represents
# review date would default to datetime.utcnow() (UTC timezone) if not provided
first_review = first_review(4, "2024-06-22")
# review prints { "easiness": 2.36, "interval": 1, "repetitions": 1, "review_datetime": "2024-06-23 01:06:02"))
# first_review prints { "easiness": 2.36, "interval": 1, "repetitions": 1, "review_datetime": "2024-06-23 01:06:02"))

# second review
second_review = review(4, first_review["easiness"], first_review["interval"], first_review["repetitions"], first_review["review_datetime"])
# review prints similar to example above.
# or just unpack the first review dictionary
second_review = review(4, **first_review)
# second_review prints similar to example above.
```

<a name="features">
Expand Down Expand Up @@ -187,6 +189,9 @@ Check coverage on [Codecov](https://codecov.io/gh/alankan886/SuperMemo2).
<a name="changelog">

## Changelog
3.0.1 (2024-06-22): Minor changes, Update recommended
- Forgot to update some code and tests from review_date to review_datetime, the returned dictionary was review_date instead review_datetime.

3.0.0 (2024-06-22): Major changes/rebuild, Update recommended
- Rewrote the code to remove the class structure, simplfying the code and usability.
- Update to provide datetime instead of just date, more specific with when to review.
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def run(self):

setup(
name="supermemo2",
version="2.0.0",
version="3.0.1",
description="Implemented the SM-2 algorithm for spaced repetition learning.",
long_description=readme_content,
long_description_content_type="text/markdown",
Expand Down
2 changes: 1 addition & 1 deletion supermemo2/sm_two.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def review(
"easiness": easiness,
"interval": interval,
"repetitions": repetitions,
"review_date": str(review_datetime),
"review_datetime": str(review_datetime),
}


Expand Down
20 changes: 10 additions & 10 deletions tests/test_sm_two.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ def test_first_review(
assert reviewed["easiness"] == expected_easiness
assert reviewed["interval"] == expected_interval
assert reviewed["repetitions"] == expected_repetitions
assert reviewed["review_date"] == expected_review_date
assert reviewed["review_datetime"] == expected_review_date


@freeze_time(FREEZE_DATE)
@pytest.mark.parametrize(
"quality, review_date, expected_easiness, expected_interval, expected_repetitions, expected_review_date",
"quality, review_datetime, expected_easiness, expected_interval, expected_repetitions, expected_review_date",
[
(0, MOCK_TODAY, 1.7000000000000002, 1, 0, str(MOCK_TODAY + timedelta(days=1))),
(1, MOCK_TODAY, 1.96, 1, 0, str(MOCK_TODAY + timedelta(days=1))),
Expand All @@ -87,18 +87,18 @@ def test_first_review(
)
def test_first_review_given_date(
quality,
review_date,
review_datetime,
expected_easiness,
expected_interval,
expected_repetitions,
expected_review_date,
):
reviewed = first_review(quality, review_date)
reviewed = first_review(quality, review_datetime)

assert reviewed["easiness"] == expected_easiness
assert reviewed["interval"] == expected_interval
assert reviewed["repetitions"] == expected_repetitions
assert reviewed["review_date"] == expected_review_date
assert reviewed["review_datetime"] == expected_review_date


@freeze_time(FREEZE_DATE)
Expand Down Expand Up @@ -137,11 +137,11 @@ def test_review(
assert reviewed["easiness"] == expected_easiness
assert reviewed["interval"] == expected_interval
assert reviewed["repetitions"] == expected_repetitions
assert reviewed["review_date"] == expected_review_date
assert reviewed["review_datetime"] == expected_review_date


@pytest.mark.parametrize(
"quality, easiness, interval, repetitions, review_date, expected_easiness, expected_interval, expected_repetitions, expected_review_date",
"quality, easiness, interval, repetitions, review_datetime, expected_easiness, expected_interval, expected_repetitions, expected_review_date",
[
(
0,
Expand Down Expand Up @@ -210,15 +210,15 @@ def test_review_given_date(
easiness,
interval,
repetitions,
review_date,
review_datetime,
expected_easiness,
expected_interval,
expected_repetitions,
expected_review_date,
):
reviewed = review(quality, easiness, interval, repetitions, review_date)
reviewed = review(quality, easiness, interval, repetitions, review_datetime)

assert reviewed["easiness"] == expected_easiness
assert reviewed["interval"] == expected_interval
assert reviewed["repetitions"] == expected_repetitions
assert reviewed["review_date"] == expected_review_date
assert reviewed["review_datetime"] == expected_review_date

0 comments on commit b91661e

Please sign in to comment.