Skip to content

Python API transition

Use python -m pip install ankiforge and from ankiforge import .... The former anki-forge distribution and anki_forge import name are not compatibility aliases. For a source checkout, rebuild the native extension with Maturin after changing names. See the setup guide.

No legacy compatibility layer is retained. Replace the old Deck/registry/runtime APIs with the owned public model:

Previous workflow Current workflow
Deck or Project with optional stable ID Project(namespace, default_deck=...)
add_note(note) and content-derived identity add(stable_key, note)
Mutable NoteType and add_notetype NoteType.builder(key)...build(), then model.note()
String model references Notes own their validated model
Project media registry Independent Media.file / Media.bytes snapshots
Inline rendered media and field-specific setters Content.sequence, media.image(), media.sound(), Note.field
Implicit HTML Strings are Text; use Content.html
Masks without stable identity Mask.rect(key, x, y, width, height)
Optional artifact plus ensure_success BuildOutput with guaranteed artifact; failures raise structured errors
Report outcome guessed from diagnostics Output/Error snapshots provide the actual result; Report only contains observations
Diff, lockfile and update-safety switches compare(CompareOptions.against(...)), BuildOptions.update_from(...)
Runtime subprocess package In-process PyO3 binding to the default Rust API

Only complete original distribution APKGs carrying current identity evidence are update baselines. Legacy bundles and old APKG evidence are not recovered automatically. See README and executable examples for the new workflow.

View Markdown