Skip to content

Monorepo for Satellite Tasking API (STAPI) Specification Python packages

License

Notifications You must be signed in to change notification settings

stapi-spec/pystapi

Repository files navigation

pystapi

GitHub Actions Workflow Status stapi-pydantic PyPI stapi-fastapi PyPI

Monorepo for Python Satellite Tasking API (STAPI) Specification packages. For more, see our docs.

Warning

The STAPI spec, and these packages, are in their early stages of development. There may be large shifts in the spec or these packages' APIs as we work towards a v1.0 release of the spec.

Packages

There are several related packages in this monorepo:

graph
    stapi-pydantic --> pystapi-client --> pystapi-validator
    stapi-pydantic --> stapi-fastapi
Loading

Pydantic models for STAPI. These models are used to generate the STAPI OpenAPI specification, and so can be considered the source-of-truth for STAPI data structures.

A backend-agnostic FastAPI application for serving STAPI endpoints. A minimal test implementation is provided in stapi-fastapi/tests/application.py. Run it like so:

uv run fastapi dev stapi-fastapi/tests/application.py

The app should be accessible at http://localhost:8000.

For implementations of stapi-fastapi with vendor-specific backends, see repos in the stapi-fastapi Github organization.

A Python API and command-line interface (CLI) for working with STAPI servers.

A work-in-progress validator for STAPI APIs. Currently not very useful.

Development

Get uv, then:

git clone [email protected]:stapi-spec/pystapi.git
cd pystapi
uv sync

Test:

uv run pytest

Check formatting and other lints:

uv run pre-commit run --all-files

If you don't want to type uv run all the time:

source .venv/bin/activate

See our contribution guidelines for information on contributing any changes, fixes, or features.