Home
Softono

Simple Spaced Repetition

Open source MIT Python
53
Stars
5
Forks
1
Issues
2
Watchers
1 year
Last Commit

 About Simple Spaced Repetition

Simple spaced repetition scheduler based on the classic Anki algorithm.

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Simple Spaced Repetition?

We provide expert installation service for this software. Our team will install, configure, and secure Simple Spaced Repetition on your server. plans start at just $30.

Simple Spaced Repetition

View on GitHub

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.

Tests Supported Versions

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