Metadata-Version: 2.4
Name: labelsets
Version: 0.3.0
Summary: Official Python SDK for LabelSets — dataset scoring, LQS v3.1 cert verification, marketplace client
Author-email: LabelSets <dev@labelsets.ai>
License: MIT
Project-URL: Homepage, https://labelsets.ai
Project-URL: Documentation, https://labelsets.ai/sdk
Project-URL: Repository, https://github.com/labelsets/labelsets-python
Project-URL: Issues, https://github.com/labelsets/labelsets-python/issues
Keywords: machine-learning,datasets,training-data,lqs,procurement,data-quality
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0
Requires-Dist: tqdm>=4.64.0
Provides-Extra: offline
Requires-Dist: cryptography>=41.0.0; extra == "offline"
Provides-Extra: torch
Requires-Dist: torch; extra == "torch"
Requires-Dist: torchvision; extra == "torch"
Provides-Extra: hf
Requires-Dist: datasets; extra == "hf"
Requires-Dist: huggingface-hub; extra == "hf"
Provides-Extra: all
Requires-Dist: labelsets[hf,offline,torch]; extra == "all"

# LabelSets Python SDK

The official Python client for the [LabelSets](https://labelsets.ai) AI training data marketplace.

```bash
pip install labelsets
```

## Quick start

```python
import labelsets

# Authenticate with your API key (get one at labelsets.ai/dashboard-seller.html)
labelsets.login("ls_your_api_key_here")

# Search the catalog
results = labelsets.search(
    "urban driving pedestrians rain",
    format="yolo",
    min_items=5000,
    max_price=500,
)
print(f"Found {len(results)} datasets")

# Inspect results
for ds in results:
    print(f"  {ds.title}: ${ds.price:.0f} ({ds.item_count:,} items, quality={ds.quality_score:.0%})")

# Get a specific dataset
ds = results[0]
print(ds.format, ds.license_type, ds.compliance)

# Download (must be purchased first at labelsets.ai)
path = ds.download("./training-data/")

# Natural language search (Pro plan)
results = labelsets.search(
    "HIPAA-compliant chest X-ray datasets with radiologist labels, at least 5000 images",
    natural_language=True,
)

# Convert results to pandas DataFrame
df = results.to_dataframe()
df[["title", "price", "quality_score"]].sort_values("quality_score", ascending=False)
```

## Environment variable auth

```bash
export LABELSETS_API_KEY="ls_your_key_here"
```

```python
import labelsets
# No login() call needed when env var is set
results = labelsets.search("medical imaging")
```

## Stream without downloading

```python
ds = labelsets.get("dataset-id")
for batch in ds.stream(batch_size=64):
    images = [item["image_url"] for item in batch]
    labels = [item["annotations"] for item in batch]
    model.train_step(images, labels)
```

## HuggingFace integration

```python
# Export to HuggingFace Hub
ds = labelsets.get("dataset-id")
url = ds.to_huggingface("yourname/my-dataset")
print(f"Published at {url}")

# Import from HuggingFace
import labelsets
meta = labelsets.get_client()._get("/api/hf/import", {"repo_id": "roboflow/coco-128"})
```

## Organizations (Team plan)

```python
# All purchases under your org are shared with team members
# Manage at labelsets.ai/org.html
```

## Installation options

```bash
# Basic (search, download)
pip install labelsets

# With PyTorch helpers
pip install "labelsets[torch]"

# With HuggingFace integration
pip install "labelsets[hf]"

# Everything
pip install "labelsets[all]"
```

## API reference

| Function | Description |
|----------|-------------|
| `labelsets.login(key)` | Authenticate |
| `labelsets.search(query, **filters)` | Search catalog |
| `labelsets.get(id)` | Fetch one dataset |
| `labelsets.list_datasets()` | List all published datasets |
| `labelsets.bundles()` | List curated bundles |
| `dataset.download(dest)` | Download purchased dataset |
| `dataset.stream(batch_size)` | Stream samples |
| `dataset.to_huggingface(repo_id)` | Push to HF Hub |
| `results.to_dataframe()` | Convert to pandas DataFrame |
| `results.filter(max_price=100)` | Client-side filter |

## Links

- [Marketplace](https://labelsets.ai/listings.html)
- [How it works & API keys](https://labelsets.ai/how-it-works.html)
- [Request a dataset](https://labelsets.ai/requests.html)
- [Support](mailto:support@labelsets.ai)
