Skip to main content

Shared contracts for OSP providers and orchestrator.

Project description

osp-provider-contracts

Shared Python contract package for OSP providers and orchestrator: typed interfaces, canonical errors, capabilities schema, idempotency helpers, and lightweight conformance assertions.

For maintainer-facing internals and invariants, see src/README.md.

Scope (v0.1)

  • Small, explicit provider protocol
  • Shared request/result/context types
  • Canonical error taxonomy with retry metadata
  • Capabilities schema validation
  • Conformance assertions for provider test suites
  • Canonical gate reason enum for approval-required flows

No pytest plugin is included in v0.1.

Approval-Required Contract

Providers that need human approval should raise ValidationError with detail="approval_required" and include a structured extra payload:

  • gate_reason: one of osp_provider_contracts.GateReason string values
  • importance: integer risk/urgency indicator when applicable
  • reason: stable machine-readable reason string
  • details: provider-specific context for operators and audit

Install

pip install osp-provider-contracts

Development

env -u VIRTUAL_ENV uv sync --extra dev
hatch shell
hatch run check
hatch run build
hatch run verify

Release

See docs/release.md for the manual/gated publish flow.

Tag and push:

git tag v0.2.0
git push origin v0.2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osp_provider_contracts-0.2.6.tar.gz (66.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

osp_provider_contracts-0.2.6-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file osp_provider_contracts-0.2.6.tar.gz.

File metadata

  • Download URL: osp_provider_contracts-0.2.6.tar.gz
  • Upload date:
  • Size: 66.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for osp_provider_contracts-0.2.6.tar.gz
Algorithm Hash digest
SHA256 327d4153f6636dba848b401e53b773f6adb3c95e68ddd7c73858cc1466033187
MD5 1d0989fb3068002560d5ef329059c8c8
BLAKE2b-256 6eee379d956679151ac4d6f013d9e42b8965d1f518a949dea8a18b6b25b422ec

See more details on using hashes here.

File details

Details for the file osp_provider_contracts-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for osp_provider_contracts-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 559897d874c36cdb446a55f8f0dbed952b6a46bb6a7683fffac5489f22b7b29a
MD5 b5e72a47d437d1de42932e9da22daf8b
BLAKE2b-256 92cad27e7ddea6157f3b933b1d6d816ab9a043dbc14dccb64eba1b5aeb26d06d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page