Metadata-Version: 2.4
Name: amdp-python-sdk
Version: 1.0.1
Summary: SDK wrapper for AMD Platform API services.
License-Expression: MIT
License-File: LICENSE.txt
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
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: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: <3.14,>=3.10
Requires-Dist: pydantic-settings~=2.12.0
Requires-Dist: pydantic~=2.11.10
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: requests~=2.32.5
Requires-Dist: responses~=0.25.8
Requires-Dist: typing-extensions>=4.7.1
Requires-Dist: urllib3<3.0.0,>=2.1.0
Description-Content-Type: text/markdown

# amdp-python-sdk
**Current version:** `0.1.0a1` 

[![PyPI - Version](https://img.shields.io/pypi/v/amdp-python-sdk.svg)](https://pypi.org/project/amdp-python-sdk)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/amdp-python-sdk.svg)](https://pypi.org/project/amdp-python-sdk)

-----

Python SDK for the AMD Platform API Services.

## Table of Contents

- [Installation](#installation)
- [Getting Started](#using-sdk)
- [License](#license)

## Installation

```bash
pip install amdp-python-sdk
```

## Quick Start

```python
from amdp_python_sdk import AMDP

# Connect with explicit credentials
sdk = AMDP.connect(
    client_id="your-client-id",
    client_secret="your-secret",
    user_service_hostname="https://amdp.cdc.gov/user-service",
    workflow_service_hostname="https://amdp.cdc.gov/workflow-service",
    sample_service_hostname="https://amdp.cdc.gov/sample-service"
)

# Upload samples with intuitive chaining
result = (
    sdk.workspace("My Workspace")
       .project("My Project")
       .upload_sample_sheet("samples.csv")
)

print(f"Uploaded {len(result.samples)} samples")
```

**Alternatively**, set environment variables and connect without parameters:

```bash
export AMDP_CLIENT_ID="your-client-id"
export AMDP_CLIENT_SECRET="your-secret"
export AMDP_USER_SERVICE_HOSTNAME="https://amdp.cdc.gov/user-service"
export AMDP_WORKFLOW_SERVICE_HOSTNAME="https://amdp.cdc.gov/workflow-service"
export AMDP_SAMPLE_SERVICE_HOSTNAME="https://amdp.cdc.gov/sample-service"
```

```python
from amdp_python_sdk import AMDP

sdk = AMDP.connect()  # Reads credentials from environment
```

## Getting Started

After connecting, you can interact with the platform immediately. For example, to retrieve the currently authenticated user:

```python
from amdp_python_sdk import AMDP

sdk = AMDP.connect()

user = sdk.get_current_user()

print(f"User ID: {user.id}")
print(f"Active: {user.is_active}")
user.first_name and print(f"First Name: {user.first_name}")
user.last_name and print(f"Last Name: {user.last_name}")
user.email and print(f"Email: {user.email}")
```

## License

`amdp-python-sdk` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
