Metadata-Version: 2.4
Name: rowland-sdk
Version: 1.1.0
Summary: Rowland SDK for Python
Project-URL: Homepage, https://rowland.ai
Project-URL: Documentation, https://rowland.ai/documentation
Project-URL: Source, https://github.com/RowlandAI/rowland-sdk
Project-URL: Issues, https://github.com/RowlandAI/rowland-sdk/issues
Author-email: Rowland Engineering <engineering@rowland.com>
License-Expression: MIT
Requires-Python: >=3.10
Requires-Dist: httpx>=0.24.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pygments>=2.20.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=9.0.3; extra == 'dev'
Requires-Dist: python-dotenv>=1.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: test
Requires-Dist: pygments>=2.20.0; extra == 'test'
Requires-Dist: pytest>=9.0.3; extra == 'test'
Requires-Dist: python-dotenv>=1.0.0; extra == 'test'
Description-Content-Type: text/markdown

# Rowland Python SDK

Python SDK for the Rowland Documents API.

## Installation

```bash
pip install rowland-sdk
```

## Quick Start

```python
from rowland import DocumentsApiClient

# Initialize client
client = DocumentsApiClient(api_key="your-api-key")

# Upload a document
with open("contract.pdf", "rb") as f:
    document = client.upload_document(f, "contract.pdf")
    print(f"Uploaded: {document.id}")

# Get documents
documents = client.get_documents(limit=10)
print(f"Found {documents.total} documents")

# Get specific document
doc = client.get_document(document.id)
print(f"Status: {doc.status}")

# Get extractions when ready
if doc.status == "success":
    extractions = client.get_document_extractions(doc.id)
    print(f"Found {extractions.total_objects_found} objects")

# Close client
client.close()
```

## Context Manager (Recommended)

```python
with DocumentsApiClient(api_key="your-api-key") as client:
    # Upload document
    with open("document.pdf", "rb") as f:
        doc = client.upload_document(f, "document.pdf")

    # Client automatically closes
```

## Methods

- `upload_document()` - Upload a document for processing
- `get_documents()` - Get paginated list of documents
- `get_document()` - Get specific document by ID
- `delete_document()` - Delete a document
- `get_document_extractions()` - Get extracted data
- `get_health()` - Check API health

## Document Types Supported

Supports 40+ document types including leases, deeds, assignments, JOAs, division orders, and more.

## Requirements

- Python 3.10+
- API key from Rowland
