> ## Documentation Index
> Fetch the complete documentation index at: https://docs.manthan.systems/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Installing and configuring the Parmana Python SDK

## Install

```bash theme={null}
pip install parmana
```

`python/pyproject.toml` names the package `parmana`, requires Python 3.10+, and depends only on `requests>=2.32.0`.

## Create a client

Unlike the TypeScript SDK, there's no separate `Configuration`/`Transport` object to assemble — `ParmanaClient` builds its own `HttpTransport` internally:

```python theme={null}
from parmana import ParmanaClient

client = ParmanaClient(
    endpoint="http://localhost:3000",
    timeout=30,   # seconds, default is ParmanaClient.DEFAULT_TIMEOUT = 30
    debug=False,  # when True, prints request/response to stdout
)
```

`ParmanaClient.__init__` (`python/parmana/client.py`) accepts exactly `endpoint`, `timeout`, and `debug` as keyword-only arguments — there's no `credentials`/auth configuration surface here at all, and no retry policy, unlike the TypeScript SDK's `Configuration.credentials` / `Configuration.retryPolicy` (which, per [TypeScript SDK → Installation](/docs/typescript-sdk/installation), don't do anything either in this snapshot). The Python client is simpler because it has less unused surface, not because it does more.

## Sub-APIs

The constructor composes seven sub-APIs, all sharing one `HttpTransport`:

```python theme={null}
self.execution = ExecutionApi(self._transport)
self.verification = VerificationApi(self._transport)
self.replay = ReplayApi(self._transport)
self.receipt = ReceiptApi(self._transport)
self.transactions = TransactionApi(self._transport)
self.trust_records = TrustRecordApi(self._transport)
self.policy = PolicyApi(self._transport)
```

See [APIs & Models](/docs/python-sdk/apis-and-models) for each one, and for where this diverges from the TypeScript SDK's equivalent sub-API set.

## Debug logging

```python theme={null}
client = ParmanaClient(endpoint="http://localhost:3000", debug=True)
```

With `debug=True`, `HttpTransport.send` (`python/parmana/transport/http_transport.py`) prints the method, URL, and body before each request, and the decoded payload after each response — there's no structured logger, just `print()`.

## Related

<CardGroup cols={2}>
  <Card title="ParmanaClient" href="/docs/python-sdk/parmana-client">The client class this configures.</Card>
  <Card title="APIs & Models" href="/docs/python-sdk/apis-and-models">Every sub-API and model, and TypeScript parity notes.</Card>
  <Card title="TypeScript SDK" href="/docs/typescript-sdk/installation">The other official SDK.</Card>
  <Card title="Authentication" href="/docs/api/authentication">Why there's no credentials configuration here yet.</Card>
</CardGroup>
