Metadata-Version: 2.4
Name: famnsdk
Version: 1.0.5
Summary: Async Python client for the Famn family organizer API
Author-email: Daniel Rufus Kaldheim <daniel@kaldheim.org>
License-Expression: MIT
Project-URL: Homepage, https://github.com/crudusapps/famn-python-sdk
Project-URL: Source, https://github.com/crudusapps/famn-python-sdk
Project-URL: Issues, https://github.com/crudusapps/famn-python-sdk/issues
Project-URL: Changelog, https://github.com/crudusapps/famn-python-sdk/releases
Keywords: famn,api-client,asyncio,aiohttp,home-assistant
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp>=3.9.0
Dynamic: license-file

# famnsdk

Async Python client for the [Famn](https://famn.app) family organizer API.

Generated from the Famn OpenAPI description. It uses `aiohttp` and can reuse a
session owned by the caller, which is how the Home Assistant integration
consumes it.

## Installation

```bash
pip install famnsdk
```

## Usage

```python
from famn_sdk import ApiClient

async def example(session):
    client = ApiClient(session=session)
    # api = SomeApi(client)
    # result = await api.some_operation(...)
```

An injected `aiohttp.ClientSession` remains owned by the caller. If no session
is supplied, use `async with ApiClient() as client:` so the generated client
closes the session it creates.

## Releasing

Releases are published to PyPI by the `Upload Python Package` GitHub Actions
workflow, using PyPI trusted publishing, when a GitHub release is created.
Bump `version` in `pyproject.toml`, `__version__` in `src/famn_sdk/__init__.py`
and `packageVersion` in `config.json`, then tag and publish the release.

## License

[MIT](LICENSE)
