Metadata-Version: 2.3
Name: syncora-sdk
Version: 0.1.3
Summary: Python SDK for Syncora.ai AI models
License: MIT
Author: ashish@kreedalabs
Requires-Python: >=3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: httpx (>=0.28.1,<0.29.0)
Requires-Dist: pydantic (>=2.11.7,<3.0.0)
Requires-Dist: pytest (>=8.4.1,<9.0.0)
Description-Content-Type: text/markdown

# Syncora SDK

Syncora SDK is a Python client library for interacting with the Syncora synthetic data platform. It allows you to generate high-quality synthetic datasets from a variety of sources including CSV, dataframes, and raw text. With just a few lines of code, you can bootstrap synthetic data pipelines in your analytics, testing, and machine learning workflows.

---

## Features

* **Easy initialization** with API key or environment variable
* **Multiple data sources**: CSV, Pandas DataFrame, JSON text
* **Data types**: Tabular, Time-series, JSONL
* **Flexible configuration**: Control number of rows, target columns, constraints
* **Asynchronous support** for large datasets
* **Built‑in error handling** and logging

---

## Installation

Install the SDK via pip:

```bash
pip install syncora-sdk
```

> Requires Python 3.7 or higher.

---

## Quick Start

### 1. Set your API key

Head over to https://syncora.ai, register for an account, and generate your API key from the dashboard.

### 2. Initialize the client and generator

```python
from syncora_sdk import SyncoraClient, SyntheticDataGenerator
from pathlib import Path


# Client with API key
client = SyncoraClient(api_key="your-syncora-api-key")

# Instantiate the synthetic data generator
syntheticDataGenerator = SyntheticDataGenerator(client)
```

### 3. Generate synthetic tabular data from a CSV file

```python
file_path = Path("Sonar.csv")

response = syntheticDataGenerator.generate_from_file(
    file_path=file_path,
    type="Tabular",
    numberOfRows=100,
    targetColumn="Freq_1"
)

print(response)
```

This will return a JSON response with a link to download the generated synthetic dataset.

---

## API Reference

### `SyncoraClient`

| Method              | Description                                                     |
| ------------------- | --------------------------------------------------------------- |
| `__init__(api_key)` | Initialize client with your api key.                            |

### `SyntheticDataGenerator`

| Method                                          | Description                                            |
| ----------------------------------------------- | ------------------------------------------------------ |
| `generate_from_file(file_path, type, ...)`      | Generate synthetic data from a file (CSV, JSONL, etc.) |

**Common Parameters**:

* `type` (str): Type of data to generate. One of \[`"Tabular"`, `"TimeSeries"`, `"JSONL"`]
* `numberOfRows` (int): Number of rows or records to generate.
* `targetColumn` (str, optional): Column on which to focus generation for tabular data.
---

## Error Handling

All SDK methods raise `SyncoraError` on failure. You can catch and inspect:

```python
from syncora_sdk import SyncoraError

try:
    syntheticDataGenerator.generate_from_file(...)
except SyncoraError as e:
    print(f"Error: {e.code} – {e.message}")
```

---

