Metadata-Version: 2.4
Name: sjvair
Version: 0.1.0a2
Summary: Command-line tool and Python client for the SJVAir air quality API.
Project-URL: Homepage, https://www.sjvair.com/
Project-URL: Repository, https://github.com/SJVAir/sjvair-python
Project-URL: Issues, https://github.com/SJVAir/sjvair-python/issues
Author: Central California Asthma Collaborative
Maintainer-email: Derek Payton <derek.payton@centralcalasthma.org>
License-Expression: MIT
License-File: LICENSE
Keywords: air-quality,airgradient,airnow,api-client,aqview,california,cli,environment,ozone,pm2.5,purpleair,san-joaquin-valley,sjvair
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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 :: 3.14
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: click
Requires-Dist: python-dotenv
Requires-Dist: pyyaml
Requires-Dist: requests
Provides-Extra: maps
Requires-Dist: contextily; extra == 'maps'
Requires-Dist: folium; extra == 'maps'
Requires-Dist: geopandas; extra == 'maps'
Requires-Dist: matplotlib; extra == 'maps'
Requires-Dist: pyarrow; extra == 'maps'
Requires-Dist: shapely; extra == 'maps'
Description-Content-Type: text/markdown

# sjvair

Command-line tool and Python client for [SJVAir](https://www.sjvair.com/) — a network of air quality monitors across California's San Joaquin Valley.

📖 **Full documentation: https://SJVAir.github.io/sjvair-python/**

```bash
pip install sjvair
```

## Quickstart

```python
from sjvair import SJVAirClient

with SJVAirClient() as client:
    for monitor in client.monitors.list():
        print(monitor['id'], monitor['name'])
```

```bash
sjvair monitors list --county Fresno --output fresno.csv
sjvair regions list --type county
```

## Development

```bash
# Install with dev dependencies
uv sync --group dev

# Run tests (live tests hit the real API and are excluded by default)
uv run pytest
uv run pytest -m live      # run the live integration tests

# Lint and format
uv run ruff check sjvair/
uv run ruff format sjvair/

# Type check
uv run ty check sjvair/
```

### Documentation

Docs are built with [Sphinx](https://www.sphinx-doc.org/) + [MyST](https://myst-parser.readthedocs.io/) and deployed to GitHub Pages on every push to `main`.

```bash
# Install with docs dependencies
uv sync --group docs

# Build once (output in docs/_build/html)
uv run sphinx-build -b html docs docs/_build/html

# Build, serve, and auto-rebuild on change
uv run sphinx-autobuild docs docs/_build/html --port 8080
```
