Metadata-Version: 2.4
Name: mercuto-client
Version: 0.3.4a1
Summary: Library for interfacing with Rockfield's Mercuto API
Author-email: Daniel Whipp <daniel.whipp@rocktech.com.au>
License-Expression: AGPL-3.0-only
Project-URL: Homepage, https://mercuto.rockfieldcloud.com.au
Project-URL: Repository, https://github.com/RockfieldTechnologiesAustralia/mercuto-client
Project-URL: Documentation, https://github.com/RockfieldTechnologiesAustralia/mercuto-client/blob/main/README.md
Keywords: mercuto,rockfield,infratech
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.32
Requires-Dist: pyftpdlib>=2.0.1
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: pytz>=2025.2
Requires-Dist: schedule>=1.2.2
Requires-Dist: pydantic>=2.0
Dynamic: license-file

# Mercuto Client Python Library

Library for interfacing with Rockfield's Mercuto public API.
This library is in an early development state and is subject to major structural changes at any time.

(Visit our Github Repository)[https://github.com/RockfieldTechnologiesAustralia/mercuto-client]

## Installation
Install from PyPi: `pip install mercuto-client` or adding the same line into your `requirements.txt`.

## Basic Usage

Use the `connect()` function exposed within the main package and provide your API key.

```python
from mercuto_client import connect

client = connect(api_key="<YOUR API KEY>")
print(client.core().list_projects())

# Logout after finished.
client.logout()

```

You can also use the client as a context manager. It will logout automatically.

```python
from mercuto_client import MercutoClient

with MercutoClient.as_credentials(api_key='<YOUR API KEY>') as client:
    print(client.core().list_projects())
```

## Current Status
This library is incomplete and may not be fully compliant with the latest Mercuto version. It is only updated periodically and provided for use without any warranty or guarantees.

- [x] API Based login (Completed)
- [ ] Username/password login

## Running tests
Install test packages:
`python -m uv sync --group tests`
Run tests:
`uv run pytest`
