Metadata-Version: 2.4
Name: log10-everest-sdk
Version: 0.1.0
Summary: Python SDK for the Everest API
Project-URL: Homepage, https://log10.io
Project-URL: Documentation, https://app.everest.log10.io/docs/python-sdk/getting-started
Project-URL: Repository, https://github.com/log10-io/everest
Project-URL: Changelog, https://github.com/log10-io/everest/blob/main/packages/sdk-python/CHANGELOG.md
Author-email: Log10 <support@log10.io>
License-Expression: MIT
License-File: LICENSE
Keywords: api,everest,log10,reports,sdk
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
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: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: httpx<1,>=0.27
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: respx>=0.22; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Provides-Extra: scripts
Requires-Dist: python-dotenv>=1; extra == 'scripts'
Description-Content-Type: text/markdown

# everest-sdk

Python SDK for the Everest API.

## Installation

```bash
uv pip install log10-everest-sdk
# or
pip install log10-everest-sdk
```

## Quick start

Set your credentials as environment variables:

```bash
export EVEREST_API_KEY="sk_live_..."
export EVEREST_WORKSPACE_ID="ws_..."
```

```python
import asyncio
from pathlib import Path

from everest_sdk import EverestClient

# Reads EVEREST_API_KEY and EVEREST_WORKSPACE_ID from env
client = EverestClient()

async def main():
    await client.validate_credentials()

    # List files
    files = await client.files.list()

    # Upload a file
    docs = await client.files.upload([Path("report.pdf")])

    # Download a file
    content = await client.files.download(docs[0].id)

    # List reports
    reports = await client.reports.list()

    # Download latest report as PDF
    pdf = await client.reports.download_latest("Q4 Report", format="pdf")
    Path("report.pdf").write_bytes(pdf)

asyncio.run(main())
```

## Getting started script

The `scripts/getting_started.py` script walks through the full workflow interactively: upload a file, create a template and generate a report in the platform, then download the result as DOCX.

### Setup

```bash
# Create a virtual environment and install the SDK with script dependencies
uv venv
uv pip install -e ".[scripts]"
```

Create a `.env.local` file with your credentials:

```bash
# .env.local
EVEREST_API_KEY=sk_live_...
EVEREST_WORKSPACE_ID=<your-workspace-id>
```

### Run

Place a `source-data.pdf` in the current directory, then:

```bash
uv run scripts/getting_started.py
```

The script loads `.env.local` automatically. It will pause at each platform step (template creation, report generation) and wait for you to type `yes` before continuing.
