Metadata-Version: 2.4
Name: spice-client
Version: 0.1.2
Summary: A Python client library for the SPICE ice nucleation API
Project-URL: Homepage, https://github.com/EERL-EPFL/spice-client
Project-URL: Repository, https://github.com/EERL-EPFL/spice-client.git
Project-URL: Documentation, https://github.com/EERL-EPFL/spice-client/blob/main/README.md
Project-URL: Issues, https://github.com/EERL-EPFL/spice-client/issues
Author-email: Evan Thomas <evan.thomas@epfl.ch>
Maintainer-email: Evan Thomas <evan.thomas@epfl.ch>
License: MIT
Keywords: climate science,environmental research,ice nucleation,laboratory data
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: geopandas>=1.1.1
Requires-Dist: jupyterlab>=4.4.6
Requires-Dist: pandas>=2.3.2
Requires-Dist: pydantic>=2.11.7
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: python-keycloak>=5.8.1
Requires-Dist: typing-extensions>=4.15.0
Requires-Dist: urllib3>=2.5.0
Description-Content-Type: text/markdown

# SPICE Client

A Python client library for interacting with the [SPICE API](https://github.com/EERL-EPFL/spice-api) - a system for managing ice nucleation particle experiment data.

## Installation

```bash
pip install spice-client
```

## Quick Start

```python
from spice_client import ApiClient, Configuration
from spice_client.helpers.wrapper import get_jwt_token
from spice_client.api.default_api import DefaultApi
import pandas as pd
import geopandas as gpd
import json

SERVER = "https://spice.epfl.ch"

auth_token = get_jwt_token(SERVER)
config = Configuration(host=SERVER, access_token=auth_token)
api = DefaultApi(ApiClient(configuration=config))

# List experiments
experiments = api.get_experiments()
print(experiments)
```

## Features

- Full API coverage for SPICE endpoints
- Keycloak authentication with token caching
- Type-safe models and responses
- Jupyter notebook integration
- Comprehensive documentation

## Authentication

The client includes Keycloak integration for secure API access. Authentication tokens are cached and refreshed.

## Documentation

For complete API documentation, visit the live API documentation at https://spice.epfl.ch/api/docs
