Metadata-Version: 2.4
Name: multipletools
Version: 0.1.1
Summary: Official Python SDK for the Multiple Tools API
Author: Abhishek Kumbhar
License-Expression: MIT
Project-URL: Homepage, https://github.com/Abhiiishek44/multipletools
Project-URL: Repository, https://github.com/Abhiiishek44/multipletools
Project-URL: Issues, https://github.com/Abhiiishek44/multipletools/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx<1,>=0.27
Provides-Extra: test
Requires-Dist: mypy<2,>=1.11; extra == "test"
Requires-Dist: pytest<9,>=8; extra == "test"
Requires-Dist: pytest-asyncio<1,>=0.24; extra == "test"
Requires-Dist: pytest-cov<7,>=5; extra == "test"
Requires-Dist: ruff<1,>=0.8; extra == "test"
Dynamic: license-file

# Multiple Tools Python SDK

Typed synchronous and asynchronous Python clients for the Multiple Tools HTTP
API. The SDK communicates only with the API and has no database, object storage,
Redis, Celery, or plugin dependencies.

## Installation

```bash
pip install multipletools
```

For local development from the repository root:

```bash
pip install ./sdks/python
```

## Usage

```python
from multipletools import Client

with Client(
    api_key="mt_live_...",
    base_url="https://api.example.com",
    timeout=60.0,
) as client:
    job = client.jobs.create(
        tool="pdf-to-word",
        file="document.pdf",
    )
    job = client.jobs.get(job.id)
    if job.status == "SUCCESS":
        client.jobs.download(job.id, "converted.docx")
```

`jobs.create` generates an idempotency key automatically. Pass
`idempotency_key=` to reuse one across an application-level retry, and pass
tool-specific settings with `options={...}`.

HTTP failures raise typed exceptions from `multipletools.exceptions`, including
authentication, permission, validation, not-found, conflict, rate-limit,
timeout, and connection errors.
