summaryrefslogtreecommitdiffstats
path: root/src/scheduler.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/scheduler.py')
-rw-r--r--src/scheduler.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/scheduler.py b/src/scheduler.py
deleted file mode 100644
index e1c783b..0000000
--- a/src/scheduler.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from typing import Protocol
-from abc import abstractmethod
-from card import Card
-
-class Scheduler(Protocol):
- """
- Schedulers must implement this interface to be usable in a session.
- """
- @abstractmethod
- def __init__(self, cards: dict[str, Card], state: dict):
- """
- Create a new instance of the scheduler from a dictionary of
- Cards indexed by ID and a scheduler-specific state as a dict.
- """
- raise NotImplementedError
-
- @abstractmethod
- def practice(self, size: int) -> list[str]:
- """
- Return a list of card IDs of the requested size, if possible.
- This list is intended for practice.
- """
- raise NotImplementedError
-
- @abstractmethod
- def test(self, size: int) -> list[str]:
- """
- Return a list of card IDs of the requested size, if possible.
- This list is intended to test the player's knowledge.
- """
- raise NotImplementedError
-
- @abstractmethod
- def update(self, results: dict[str, int]) -> None:
- """
- Takes a dictionary of card IDs and integers, where the integer
- is 0 if the player failed to guess the other side of the card,
- of 1 if the player succeeded.
- """
- raise NotImplementedError
-
- @abstractmethod
- def getState(self) -> dict:
- """
- Return the scheduler's state for storage.
- """
- raise NotImplementedError
-
-SCHEDULERS = ["brutal"]
-
-def getSchedulerClass(name: str) -> Scheduler:
- """
- Returns the class object for the requested scheduler, if one exists.
- """
- match name:
- case "brutal":
- from scheduler_brutal import SchedulerBrutal
- return SchedulerBrutal
- case _:
- raise Exception(f"Unknown scheduler: {name}")
-