Frame Evaluation — Build Guide
This guide explains how to build and test Dapper's Cython frame evaluation extension in development workflows.
Prerequisites
Required Dependencies
- Python 3.9+ (validated in CI through Python 3.14)
- Cython >= 3.0
- C compiler (GCC/Clang on Linux/macOS, MSVC on Windows)
- uv for project commands and environment management
Install development dependencies:
uv sync
Build Commands
The repository exposes frame-eval commands through uv run:
# Development build (verbose + Cython annotate enabled)
uv run build-dev
# Production-style build (no annotate)
uv run build-prod
# Clean frame-eval artifacts
uv run frame-eval-clean
# Runtime smoke test for extension availability
uv run frame-eval-test
Equivalent script form (still supported):
uv run python scripts/build_frame_eval.py build-dev
Artifact Layout
Frame-eval build outputs are intentionally isolated under a dedicated artifact tree:
build/frame-eval/lib— built extension modulesbuild/frame-eval/temp— compiler object/intermediate filesbuild/frame-eval/cython— generated Cython C/HTML outputs
This avoids leaving compiled .so/.pyd files inline in dapper/_frame_eval during normal development builds.
Notes
uv run build-devperforms a package reinstall step (Built dapper @ ...) before running the extension build; this is expected for script entry points.- Compiler warnings from generated C code are reduced where practical, but platform/compiler-specific warnings may still appear.