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 |
|---|---|
|
Typer CLI entry point and display |
|
Ingest service and materialization |
|
Pipeline contract and file containers |
|
Run service and scheduler |
|
Filter step executor |
|
Quarantine store and collector |
|
Canonical ID resolver |
|
Statistics recorder |
|
SQLite pipeline store |
|
Run manager and manifest |
|
CSV/Parquet streaming helpers |
Next steps¶
Testing — test-first workflow
Code style — linting and formatting conventions