Development setup

Prerequisites

  • Python 3.11 or later

  • Git

Install

git clone https://github.com/starlincs/astro.git
cd astro
pip install -e ".[dev]"

Verify the CLI:

astro --help

Canonical commands

make check                              # lint + format + typecheck + tests
make cov                                # include large-file integration tests
make fix                                # auto-fix lint and format issues
pytest tests/path/to/test_module.py -q  # run a single test module
pre-commit run -a                       # run all pre-commit hooks

Always run make check before finishing a task.

Pre-commit hooks

Install hooks to run lint, format, and type checks on commit:

pre-commit install

Optional pre-push hook to run tests:

pre-commit install --hook-type pre-push

Full pytest runs via make check, not pre-commit (too slow for every commit).

Project structure

Directory

Purpose

src/astro/cli/

Typer CLI entry point and display

src/astro/ingest/

Ingest service and materialization

src/astro/pipeline/

Pipeline contract and file containers

src/astro/run/

Run service and scheduler

src/astro/filter/

Filter step executor

src/astro/quarantine/

Quarantine store and collector

src/astro/resolver/

Canonical ID resolver

src/astro/stats/

Statistics recorder

src/astro/storage/

SQLite pipeline store

src/astro/working/

Run manager and manifest

src/astro/io/

CSV/Parquet streaming helpers

Next steps