Metadata-Version: 2.4
Name: mwps-client
Version: 0.1.32
Summary: Official mwps client library: single entry point MwpsClient, one typed method per mwps command.
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# mwps-client

Official Python client for the `mwps` server. `MwpsClient` is the single
entry point: it hides transport selection, TLS material, proxy routing,
request correlation and error mapping behind one typed async method per
`mwps` command (see `mwps_client/mwps_client/client.py`).

## Model access

`mwps-client` talks only to `mwps` itself, never to a model. The `mwps`
server it calls never talks to a model directly either: macsc (Model
Access Core) is the sole gateway for model access, reached exclusively
through macsc's own client, `macore_client.MacClient` (package
`macore-client`). See the server's `info` command (`overview` section) or
`src/mwps/docs/overview.md` in the server repository for the full rule.

## Installation

```
pip install mwps-client
```

## Usage

```python
import asyncio
from mwps_client import MwpsClient

async def main():
    client = MwpsClient(base_url="https://<host>:8015", ca="/path/to/ca.crt")
    result = await client.invoke_tool(tool_name="list_servers")
    print(result)

asyncio.run(main())
```

## Version lockstep

`mwps-client` carries no version of its own: its published version is
always identical to the `mwps` server version it was generated against
(C-068, ClientServerVersionLockstep). Both packages read the same
repository-root `VERSION` file — `mwps_client/VERSION` is a symlink to
`../VERSION` — so a client published from a given deploy always matches
the server it talks to. See `pipeline/README.md` for the release process
that keeps the two in lockstep.
