Skip to content

Getting Started

Prerequisites

  • Python 3.12+
  • uv
  • just (task runner)

Installing just

Platform Command
Windows (Chocolatey) choco install just
Windows (WinGet) winget install Casey.Just
Windows (Scoop) scoop install just
macOS (Homebrew) brew install just
Linux (apt — Ubuntu/Debian) sudo apt install just
Linux (Homebrew) brew install just
Any (cargo) cargo install just
Any (pipx) pipx install rust-just

New to development? See the Environment Setup guide for step-by-step instructions to install all prerequisites.

Setup

  1. Clone the repository:
git clone https://github.com/realslimslaney/ALM.git
cd ALM
  1. Install dependencies:
uv sync
  1. Install pre-commit hooks:
uv run pre-commit install
  1. Set up your API keys:

Copy the example environment file and add your keys:

cp .env.example .env

Open .env and replace your_key_here with your FRED API key (free).

  1. Verify the installation:
uv run pytest

Common Tasks

This project uses just as a task runner. Run just with no arguments to see all available recipes.

just              # list all recipes
just test         # run tests
just lint         # lint with ruff
just format       # format with ruff
just render       # render all QMD files to HTML
just render-pdf   # render all QMD files to PDF
just render-one convexity-hedging      # render a single report to HTML
just render-one-pdf convexity-hedging  # render a single report to PDF
just run run_alm_demonstration         # run a script

PDF output requires a LaTeX distribution. Install TinyTeX via Quarto: quarto install tinytex

Project Layout

ALM/
├── src/alm/        # Importable Python package
├── scripts/        # Standalone runnable scripts
├── quarto/         # Quarto (.qmd) reports and graphs
├── tests/          # Test suite
└── docs/           # Documentation