Metadata-Version: 2.5
Name: compose-api-client
Version: 0.7.72
Summary: Python client for compose-api: generated from its OpenAPI spec, plus a hand-written application layer
Project-URL: Repository, https://github.com/biosimulations/compose-api
Project-URL: Documentation, https://github.com/biosimulations/compose-api/blob/main/docs/plan-cli.md
License-Expression: MIT
Requires-Python: >=3.11
Requires-Dist: attrs>=25.4.0
Requires-Dist: httpx<0.29,>=0.28.1
Requires-Dist: python-dateutil>=2.9.0.post0
Provides-Extra: auth
Requires-Dist: authlib<2,>=1.8.0; extra == 'auth'
Requires-Dist: joserfc<2,>=1.7.5; extra == 'auth'
Requires-Dist: keyring<26,>=25.7; extra == 'auth'
Requires-Dist: platformdirs<5,>=4.5.1; extra == 'auth'
Requires-Dist: portalocker<5,>=3.2; extra == 'auth'
Requires-Dist: pydantic<3,>=2.11.5; extra == 'auth'
Requires-Dist: pyjwt[crypto]<3,>=2.15.0; extra == 'auth'
Requires-Dist: pywin32>=311; (sys_platform == 'win32') and extra == 'auth'
Provides-Extra: cli
Requires-Dist: authlib<2,>=1.8.0; extra == 'cli'
Requires-Dist: click>=8.1; extra == 'cli'
Requires-Dist: joserfc<2,>=1.7.5; extra == 'cli'
Requires-Dist: keyring<26,>=25.7; extra == 'cli'
Requires-Dist: platformdirs<5,>=4.5.1; extra == 'cli'
Requires-Dist: portalocker<5,>=3.2; extra == 'cli'
Requires-Dist: pydantic<3,>=2.11.5; extra == 'cli'
Requires-Dist: pyjwt[crypto]<3,>=2.15.0; extra == 'cli'
Requires-Dist: pywin32>=311; (sys_platform == 'win32') and extra == 'cli'
Requires-Dist: rich>=13.7; extra == 'cli'
Requires-Dist: typer<0.26,>=0.18; extra == 'cli'
Description-Content-Type: text/markdown

# compose-api-client

The Python client for [compose-api](https://github.com/biosimulations/compose-api).

- `compose_api_client` (`api/`, `models/`, `client.py`, `types.py`, `errors.py`, `openapi.json`): **generated** from the
  service's OpenAPI spec by `make clients` in the repository root. Never edit these by hand; `make check-clients` fails
  on drift.
- `compose_api_client.ext` (`session.py`, `credentials.py`, `_policy.py`, `errors.py`): hand-written application layer
  (`ComposeSession`, `AsyncComposeSession`, `TokenSource`, destination guard, 1-renewal read replay on 401, typed
  `ExitCode` / `CliError` hierarchy). Base package dependencies only (`attrs`, `httpx`, `python-dateutil`).
- `compose_api_client.auth` and `compose_api_client.profiles` (`compose-api-client[auth]`): Auth0 OAuth 2.0 / OIDC
  client (browser PKCE and RFC 8628 device flow), OS-keychain `CredentialStore`, journaled `AuthSession` renewal and
  revocation, and profile resolution (`BUILTIN_PROFILES`, `COMPOSE_API_CLI_*`, `config.toml`).
- `compose_api_client.cli` (`compose-api-client[cli]`): the `compose-api` command-line client.
- `compose_api_client.utils.run_simulation_and_wait`: the hand-written helper pbest uses (kept from 0.2.0).

Until 0.2.0 this package lived in [biosimulations/compose-api-client](https://github.com/biosimulations/compose-api-client);
it was brought here with its history. See [`docs/cli.md`](../../docs/cli.md) and [`docs/plan-cli.md`](../../docs/plan-cli.md).
