Skip to main content

A dbt-like platform for building and managing flashcard projects

Reason this release was yanked:

Bug Fix

Project description

Open Anamnesis

Open-source flashcards as code. Build and manage flashcard projects with dependency management, validation, and a web-based learning interface.

Example

Python 3.8+ License

Features

  • Structured Decks: Organize flashcards with dependency management
  • Validation: Compile and validate YAML/JSON for correctness
  • Web Interface: Auto-generated learning platform with Learn and Test modes
  • Dependencies: Learn in the correct order with prerequisite tracking

Quick Start

# Install
pip install open-anamnesis

# Initialize project
anamnesis init my_project
cd my_project

# Validate
anamnesis compile

# Build and launch
anamnesis build
# Visit http://127.0.0.1:5000

Project Structure

my_project/
├── _project.yml                # name, description, version
├── decks/
│   └── deck_name/
│       ├── _deck.yml           # display_name, description, depends_on
│       ├── card_name.json      # card front and back
│       └── card_name.yml       # card depends_on
└── build/                      # generated files

Card Schema

Each card consists of two files:

card_name.json:

{
  "display_name": "Card Title",
  "front": "Question",
  "back": "Answer"
}

card_name.yml:

depends_on: other_card_id  # or null for first card

Character Limits

  • display_name: 60 characters
  • front: 200 characters
  • back: 500 characters

Commands

anamnesis init [PROJECT_NAME]              # Initialize new project
anamnesis compile [-d PROJECT_DIR]         # Validate project
anamnesis build [-d DIR] [-p PORT]         # Build and serve (default: port 5000)

Validation

The compiler validates:

  • Syntax: Valid YAML and JSON
  • Required fields: display_name, front, back for all cards
  • Character limits: display_name (60), front (200), back (500)
  • Unique IDs: Card IDs must be unique within each deck
  • Dependencies:
    • Decks can depend on multiple decks
    • Cards depend on exactly one card (or null for first card)
    • Cards cannot reference cards in other decks
    • Each deck must have exactly one first card

Development

See docs/GUIDE.md for development setup and docs/ARCHITECTURE.md for system overview.

License

MIT License - see LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_anamnesis-0.1.1.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_anamnesis-0.1.1-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file open_anamnesis-0.1.1.tar.gz.

File metadata

  • Download URL: open_anamnesis-0.1.1.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.1

File hashes

Hashes for open_anamnesis-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9be11d12e3f1e96560762f1535a21fa4688277bebd2d411b18ee4fc7babe55b8
MD5 bc04253b1fbaaa4e4556dd541b48c5d9
BLAKE2b-256 823b1473edc5313ed90f1393e85bdaa4bd06647b137f2cbe7ace65f052e41925

See more details on using hashes here.

File details

Details for the file open_anamnesis-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: open_anamnesis-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.1

File hashes

Hashes for open_anamnesis-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2d58a2d150034f31c1d59095197735c5fb59678bf41193e2654d4da122019623
MD5 757a12e58fcfa5a20dcb4c3d787f54f5
BLAKE2b-256 4aeae0c711ca47d58d67212a4f96ed02ce89d6f39bed8ebaea94c06656c2cde2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page