Metadata-Version: 2.4
Name: monkeyhub
Version: 0.1.0
Summary: Python SDK for MonkeyHub — Backend as a Service for AI teams
Project-URL: Homepage, https://monkeyhub.ai
Project-URL: Documentation, https://monkeyhub.ai/docs/sdk/python
Author: Skaler Labs
License-Expression: MIT
License-File: LICENSE
Keywords: ai,baas,backend,dynamodb,monkeyhub,sdk,vector-search
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-httpx>=0.35; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# MonkeyHub Python SDK

Python SDK for [MonkeyHub](https://monkeyhub.ai) — Backend as a Service for AI teams.

## Install

```bash
pip install monkeyhub
```

## Quickstart

```python
from monkeyhub import Monkey, PutOptions

m = Monkey("mk_live_your_key_here")

# Collections (MonkeyDB)
users = m.collection("users")
users.save({"id": "1", "name": "Alice", "role": "admin"})
user = users.find_one("1")

# Vector search (MonkeySearch)
docs = m.search("docs", fields=["title", "body"])
docs.upsert({"id": "1", "title": "Getting Started", "body": "Welcome to MonkeyHub"})
results = docs.query("getting started")

# Tasks (MonkeyTasks)
tasks = m.tasks("emails")
tasks.run({"payload": {"to": "alice@example.com", "template": "welcome"}})

# File storage (MonkeyBuckets)
bucket = m.bucket("uploads")
with open("photo.jpg", "rb") as f:
    bucket.put("photo.jpg", f.read(), PutOptions(content_type="image/jpeg"))
url = bucket.get_url("photo.jpg")

# Email (MonkeyMail)
mail = m.mail()
mail.send(from_addr="hello@example.com", to="alice@example.com", subject="Hi", text="Hello!")

# Compute boxes (MonkeyBox)
box = m.box.create({"name": "dev-box", "image": "default"})
result = box.exec("echo hello")
print(result.stdout)
```

## Context Manager

```python
with Monkey("mk_live_your_key_here") as m:
    col = m.collection("test")
    col.save({"id": "1", "value": "hello"})
```

## Documentation

Full documentation at [monkeyhub.ai/docs/sdk/python](https://monkeyhub.ai/docs/sdk/python).
