Metadata-Version: 2.4
Name: bso
Version: 2.0.0
Summary: BSO - Boson SDK for Model Registry
Home-page: https://github.com/boson-ai/model-registry
Author: Model Registry Team
Author-email: team@boson.ai
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
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: httpx>=0.25.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# BSO - Boson Model Registry SDK

Python SDK for the Boson Model Registry - manage ML models, releases, and deployments.

## Installation

```bash
pip install bso
```

## Quick Start

```python
from bso import Registry

# Initialize client
registry = Registry(
    base_url="https://your-registry.example.com/api",
    api_key="your-api-key"
)

# Or use environment variables
# REGISTRY_URL=https://your-registry.example.com/api
# REGISTRY_API_KEY=your-api-key
registry = Registry.from_env()

# List models
models = registry.list_models()

# Create a model
model = registry.create_model(
    name="my-model",
    storage_path="s3://bucket/models/my-model",
    description="My ML model"
)

# Create a release
release = registry.create_release(
    model_name="my-model",
    version="1.0.0",
    tag="v1.0.0",
    digest="sha256:abc123...",
    metadata={"accuracy": 0.95}
)

# Deploy a release
deployment = registry.deploy(
    release_id=release.id,
    environment="production"
)

# Get latest release for an environment
latest = registry.get_latest_release(
    model_name="my-model",
    environment="production"
)
```

## Features

- Model management (create, list, get, delete)
- Release versioning with metadata
- Deployment tracking across environments
- Docker build triggering and status
- Artifact management
- Audit logging

## Requirements

- Python 3.8+
- httpx
- pydantic

## License

MIT
