Python path
Scaffold an OMS Service with Copier
The Python template is the Copier counterpart to the Rust scaffold: ServiceStatus, data requests, BIT, contract tooling, Helm, and the same pipelines-oms include. Delete the example and add domain logic. No OMS plumbing to invent.
Day one
Generate, then run
Install Copier and uv
Python 3.12+, uv, and uv tool install copier. --trust is required so the post-generate task can stamp revision_date.
Copy from a pinned tag
Service names must start with stator-. Pin --vcs-ref; floating main is not a release.
copier copy \
--trust \
--vcs-ref v1.0.0 \
https://gitlab.com/stator-open-labs/oms-developer-kit/service-template-python.git \
stator-my-python-serviceSync, test, publish heartbeats
uv fetches platform-pylib as a git dependency. For a sibling checkout, switch uv sources to a path after generate.
cd stator-my-python-service
uv sync && uv run pytest && uv run python -m <package>.mainPin matrix
v1.0.0 defaults
| Dependency | Pin |
|---|---|
| platform-pylib | v1.0.0 |
| pipelines-oms | 1.0.0 |
| oms_schema_version | 002.5.0 |
| cucumber-uci image | 1.0.0 |
Override any pin at generate time. Generated services default to a proprietary LICENSE (unlike the Rust template). Relicense if you intend to open-source.
Local bus
just helpers
just dev-infra then just dev-run, or just dev-bus for the full stack. Local OWP expects sibling checkouts of platform-crates and PostMaster beside the generated service.
Prefer Rust? Start with cargo-generate. Runtime: Platform-Pylib. Template: Service-Template-Python.