simple-spaced-repetition

Simple spaced repetition scheduler based on the classic Anki algorithm.

MIT License

Downloads
53
Stars
31
Committers
1

simple-spaced-repetition

Simple spaced repetition scheduler, based on the classic Anki algorithm and implemented in under 40 lines of code.

This scheduler is used at Python.cards.

Installation

Install with pip:

pip install simple_spaced_repetition

Example usage

The Card class is what you should use:

>>> from simple_spaced_repetition import Card
>>> Card()
Card(status=learning, step=0, interval=None, ease=2.5)

Card has a single method options() which returns the 4 possible choices for answering a card:

>>> from simple_spaced_repetition import Card
>>> card = Card()
>>> card.options()
[('again', Card(status=learning, step=0, interval=0:01:00, ease=2.5)),
 ('hard', Card(status=learning, step=1, interval=0:06:00, ease=2.5)),
 ('good', Card(status=learning, step=1, interval=0:10:00, ease=2.5)),
 ('easy', Card(status=reviewing, step=0, interval=4 days, 0:00:00, ease=2.5))]

Next to each answer is a new Card object that represents the card after answering with that option.

The attribute interval holds the time that must pass before the card is due again:

>>> from simple_spaced_repetition import Card
>>> card = Card()
>>> for answer, new_card in card.options():
...     print(answer, new_card.interval)
again 0:01:00
hard 0:06:00
good 0:10:00
easy 4 days, 0:00:00

Run tests

Simply run:

python test_simple_spaced_repetition.py