Metadata-Version: 2.5
Name: matelab-python-sdk
Version: 0.2.0a4
Summary: Reusable async Python client for the Matelab Integration Contract
Author: CMPDC, Institute of Physics, Chinese Academy of Sciences
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: asyncio,electronic-lab-notebook,eln,matelab,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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 :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: httpx2>=2.13.1
Requires-Dist: jsonschema>=4.26.0
Requires-Dist: pydantic>=2.13.5
Requires-Dist: typing-extensions>=4.16.0
Description-Content-Type: text/markdown

# matelab-python-sdk

Async Python client for the Matelab Integration Contract, with typed interfaces for authentication,
notebooks, records, attachments, cloud files, templates, and literature. Requires Python 3.11 or newer.

## Installation

```bash
uv add matelab-python-sdk
```

Or use `python -m pip install matelab-python-sdk`.

## Quick start

Replace the example credentials with your own:

```python
import asyncio

from matelab import AsyncMatelab


async def main() -> None:
    async with AsyncMatelab() as client:
        await client.authenticate("user@example.org", "password")
        notebooks = await client.notebooks.list()
        for notebook in notebooks.owned:
            print(notebook.ref)


asyncio.run(main())
```

`AsyncMatelab()` uses `https://matelab.iphy.ac.cn/api` by default. Pass another API root as its first argument.

## Documentation

- [API reference](https://github.com/tiannianzhu/matelab-python-sdk/blob/main/docs/api.md): Session persistence, errors, examples, and Provider limits.
- [Operation coverage](https://github.com/tiannianzhu/matelab-python-sdk/blob/main/docs/operation-coverage.yaml): supported operations.
- [Development and releases](https://github.com/tiannianzhu/matelab-python-sdk/blob/main/docs/development.md): checks, Provider smoke, versioning, and builds.
