Developer Documentation

Author:

Rohit Goswami

Developer Documentation

This section contains technical documentation for developers working on rgpycrumbs.

Architecture

Document

Description

Lazy Import Pattern

How ensureimport() works for optional dependencies

CLI Architecture

Dispatcher pattern for PEP 723 scripts

Modular Design

Separation of CLI, I/O, and plotting logic

Patterns

Pattern

Description

Lazy Imports

Defer optional dependency loading until first use

PEP 723 Scripts

Self-contained CLI scripts with inline dependencies

Testing Pattern

How to write tests for CLI and plotting code

Contributing

Quick Start for Developers

Setup Development Environment**

git clone https://github.com/HaoZeke/rgpycrumbs
cd rgpycrumbs
uv sync --all-extras

Run Tests**

uv run pytest -m pure  # Pure Python tests
uv run pytest -m interpolation  # Tests requiring scipy
uv run pytest -m surfaces  # Tests requiring jax

Add New CLI Command**

  1. Create script in rgpycrumbs/<module>/cli_<name>.py

  2. Add PEP 723 header with dependencies

  3. Use click for CLI interface

  4. Delegate to plotting functions in rgpycrumbs/<module>/plotting.py

See CLI Architecture for details.