Working protocol for any task in this repository:
- Identify the task type and select only the local repository files that are relevant to that task.
- Read only those relevant local files before making changes.
- If any selected local file references shared standards or shared operational guidance that are relevant to the same task, read those shared documents too before proceeding.
- Treat repository-local documents as repository-specific additions, restrictions, or overrides to shared guidance.
- If a repository-local rule conflicts with a shared rule, the local repository rule takes precedence.
Python API client for the SoftwareONE Marketplace Platform (MPT) API. Provides synchronous
(MPTClient) and asynchronous (AsyncMPTClient) clients built on httpx, with typed
resource services, mixin-based HTTP operations, and an RQL query builder.
When applicable, read the repository documentation in this order:
README.md— repository overview, quick start, and documentation mapdocs/usage.md— installation, configuration, Python usage examples, and supported Docker-based commandsdocs/architecture.md— layered architecture, directory structure, and key abstractionsdocs/local-development.md— Docker-only setup and execution modeldocs/testing.md— repository-specific testing strategy and command mappingdocs/contributing.md— repository-specific workflow and links to shared standardsdocs/documentation.md— repository-specific documentation rules
Then inspect the code paths relevant to the task:
mpt_api_client/mpt_client.py— public sync and async client entry pointsmpt_api_client/http/— HTTP clients, services, query state, and reusable mixinsmpt_api_client/resources/— domain resource groups such as catalog, commerce, billing, and integrationmpt_api_client/models/— response model layer and collection wrappersmpt_api_client/rql/— fluent RQL query buildertests/unit/— unit coverage for transport, resources, models, and query buildertests/e2e/— live API coverage by domainmake/andcompose.yaml— Docker-based local command entry points
The upstream API contract is the MPT OpenAPI spec: https://api.s1.show/public/v1/openapi.json
| Command | Purpose |
|---|---|
make build |
Build the Docker development environment |
make test |
Run unit tests |
make check |
Run all linting and type checks |
make check-all |
Run checks + tests |
make format |
Auto-format code |
make bash |
Open a shell in the Docker container |
make run |
Start an IPython session in Docker |
- Prefer Docker-based
maketargets over ad hoc local Python commands. - Keep
README.mdconcise and navigational. - Put topic-specific documentation under
docs/instead of expandingREADME.md. - Link shared engineering rules from
mpt-extension-skillsinstead of duplicating them locally.
mpt_api_client/
├── mpt_client.py # MPTClient / AsyncMPTClient entry points
├── http/ # HTTP transport, services, mixins
├── resources/ # API domain modules (catalog, commerce, billing, …)
├── models/ # Response model classes
├── rql/ # RQL query builder
└── exceptions.py # Error hierarchy