Metadata-Version: 2.3
Name: skillforge-client
Version: 0.3.0
Summary: Official Python client for the Skillforge API.
Keywords: skillforge,api,client,openapi
Author: Leon Weimann
Author-email: Leon Weimann <coding@leonweimann.de>
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Typing :: Typed
Requires-Dist: httpx>=0.23.1,<0.29.0
Requires-Dist: attrs>=22.2.0
Requires-Python: >=3.11
Project-URL: Repository, https://github.com/Nachhilfe-Leon-Weimann/skillforge
Project-URL: Issues, https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues
Project-URL: OpenAPI contract, https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.3.0/openapi.json
Description-Content-Type: text/markdown

# Skillforge Python Client

Official, typed Python client for the Skillforge HTTP API. The package is generated from Skillforge's versioned OpenAPI contract and released with the matching Skillforge version.

## Installation

With [uv](https://docs.astral.sh/uv/):

```console
uv add skillforge-client
```

Or with pip:

```console
python -m pip install skillforge-client
```

## Quick start

Use `AuthenticatedClient` for endpoints protected by a Skillforge bearer token:

```python
import os

from skillforge_client import AuthenticatedClient

client = AuthenticatedClient(
    base_url=os.environ["SKILLFORGE_URL"],
    token=os.environ["SKILLFORGE_TOKEN"],
)
```

Endpoint functions are grouped by their OpenAPI tag. For example, the liveness endpoint can be called synchronously:

```python
import os

from skillforge_client import Client
from skillforge_client.api.system import liveness_check_health_live_get

with Client(base_url=os.environ["SKILLFORGE_URL"]) as client:
    health = liveness_check_health_live_get.sync(client=client)

if health is not None:
    print(health.status.value)
```

Every generated endpoint module provides four variants:

- `sync`: blocking call returning the parsed response or `None`
- `sync_detailed`: blocking call returning status, headers, content, and the parsed response
- `asyncio`: asynchronous call returning the parsed response or `None`
- `asyncio_detailed`: asynchronous call returning the detailed response

Generated request and response models are available from `skillforge_client.models`.

## Versioning and source

Client versions follow Skillforge releases. This package was generated from the [`openapi.json`](https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.3.0/openapi.json) contract for Skillforge v0.3.0; generated source is not maintained by hand.

- [Skillforge repository](https://github.com/Nachhilfe-Leon-Weimann/skillforge)
- [Issue tracker](https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues)
