Anki/pylib/anki
Damien Elmes 5004cd332b
Integrate FSRS into Anki (#2654)
* Pack FSRS data into card.data

* Update FSRS card data when preset or weights change

+ Show FSRS stats in card stats

* Show a warning when there's a limited review history

* Add some translations; tweak UI

* Fix default requested retention

* Add browser columns, fix calculation of R

* Property searches

eg prop:d>0.1

* Integrate FSRS into reviewer

* Warn about long learning steps

* Hide minimum interval when FSRS is on

* Don't apply interval multiplier to FSRS intervals

* Expose memory state to Python

* Don't set memory state on new cards

* Port Jarret's new tests; add some helpers to make tests more compact

https://github.com/open-spaced-repetition/fsrs-rs/pull/64

* Fix learning cards not being given memory state

* Require update to v3 scheduler

* Don't exclude single learning step when calculating memory state

* Use relearning step when learning steps unavailable

* Update docstring

* fix single_card_revlog_to_items (#2656)

* not need check the review_kind for unique_dates

* add email address to CONTRIBUTORS

* fix last first learn & keep early review

* cargo fmt

* cargo clippy --fix

* Add Jarrett to about screen

* Fix fsrs_memory_state being initialized to default in get_card()

* Set initial memory state on graduate

* Update to latest FSRS

* Fix experiment.log being empty

* Fix broken colpkg imports

Introduced by "Update FSRS card data when preset or weights change"

* Update memory state during (re)learning; use FSRS for graduating intervals

* Reset memory state when cards are manually rescheduled as new

* Add difficulty graph; hide eases when FSRS enabled

* Add retrievability graph

* Derive memory_state from revlog when it's missing and shouldn't be

---------

Co-authored-by: Jarrett Ye <jarrett.ye@outlook.com>
2023-09-16 16:09:26 +10:00
..
_vendor Update Python deps 2023-03-31 14:04:05 +10:00
foreign_data Plaintext import/export (#1850) 2022-06-01 20:26:16 +10:00
importing Improve import messaging when notetype has changed (#2483) 2023-04-28 11:39:18 +10:00
scheduler Improve presentation of importing results (#2568) 2023-08-02 20:29:44 +10:00
_backend.py Move protobuf generation into a separate crate; write .py interface in Rust 2023-06-12 09:52:00 +10:00
_legacy.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
_rsbridge.pyi Rework syncing code, and replace local sync server (#2329) 2023-01-18 12:43:46 +10:00
browser.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
cards.py Integrate FSRS into Anki (#2654) 2023-09-16 16:09:26 +10:00
collection.py Add a backend method to add notes in bulk (#2659) 2023-09-16 13:51:32 +10:00
config.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
consts.py Fix mypy not picking up on missing attributes 2022-11-04 14:56:36 +10:00
db.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
dbproxy.py Update Python deps 2023-03-31 14:04:05 +10:00
decks.py deckconfig.proto -> deck_config.proto 2023-07-03 13:44:54 +10:00
errors.py Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
exporting.py Update Python deps 2023-03-31 14:04:05 +10:00
find.py Add py3.9 to hooks (#1542) 2021-12-09 09:11:22 +10:00
hooks.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
httpclient.py Update Python deps 2023-03-31 14:04:05 +10:00
lang.py Add Filipino to language list 2023-07-17 14:07:11 +10:00
latex.py Make dvipng use transparent background by default (#2036) 2022-08-31 18:49:22 +10:00
media.py Support AVIF (#2630) 2023-08-31 08:44:10 +10:00
models.py image occlusion button in note editor (#2485) 2023-07-27 22:45:49 +10:00
notes.py Narrow typehints within pylib (#2003) 2022-08-05 14:48:07 +10:00
py.typed mark anki and aqt modules as having typing info 2020-01-13 13:03:37 +10:00
rsbackend.py PEP8 for rest of pylib (#1451) 2021-10-25 14:50:13 +10:00
sound.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
stats.py Update Python deps 2023-03-31 14:04:05 +10:00
statsbg.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
stdmodels.py Add ability to restore a notetype to its original configuration (#2472) 2023-04-18 14:07:51 +10:00
storage.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
sync.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
syncserver.py Update Rust and Python deps (#2567) 2023-07-01 18:26:43 +10:00
tags.py Move custom study tag and limit gathering+saving into the backend 2022-03-10 16:23:03 +10:00
template.py Rework RenderCardOutput::question/answer 2023-06-27 00:37:41 +10:00
types.py Enable invalid-name globally in pylib (#1454) 2021-10-25 19:10:56 +10:00
utils.py Change Anki's version scheme; bump to 23.09 (#2640) 2023-09-07 12:37:15 +10:00