🛠️ Development¶
This repo uses uv for dependency management and just as a task runner.
Setup¶
Common tasks¶
just # format, lint, type-check, test
just format # ruff format
just lint # ruff check --fix
just type # ty check
just test # pytest with coverage
just live-test # live integration tests against the real MAX API
Documentation¶
The site you're reading is built with MkDocs and the Material theme. API pages are generated from docstrings via mkdocstrings.
just docs-serve # live preview at http://127.0.0.1:8000
just docs-build # build the static site into ./site
Docs deploy automatically to GitHub Pages on every push to main via .github/workflows/docs.yml.
Project layout¶
src/maicoin/
v3/ # REST v3 client, models, auth helpers, errors
ws/ # WebSocket stream client and channel models
tests/
v3/, ws/ # unit tests with mocked sessions
live/ # live integration tests (skipped by default)
docs/ # MkDocs source
examples/ # runnable scripts using the real API
Releasing¶
bump-my-version is configured via pyproject.toml. To cut a release:
The publish workflow uploads to PyPI on tag pushes; the docs workflow republishes the site on push to main.