Metadata-Version: 2.4
Name: novant
Version: 0.4.0
Summary: Python SDK for the Novant API
Author-email: Novant <support@novant.io>
License-Expression: MIT
Project-URL: Homepage, https://novant.io
Project-URL: Documentation, https://docs.novant.io/api
Project-URL: Repository, https://github.com/novant-io/novant-python
Keywords: novant,novant-sdk,iot,building-automation,sdk
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
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
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: pandas
Requires-Dist: pandas>=1.5; extra == "pandas"
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"
Requires-Dist: twine>=4.0; extra == "dev"
Dynamic: license-file

# novant-python

Python SDK for the [Novant](https://novant.io) API.

Full documentation at [docs.novant.io/sdk/python](https://docs.novant.io/sdk/python).

## Installation

```bash
pip install novant
```

## Quick Start

```python
from novant import NovantClient

client = NovantClient(api_key="ak_xxx")

# Get project info
proj = client.project()
print(proj.city)        # "Richmond, VA"
print(proj.tz)          # "New_York"

# List assets
for asset in client.assets():
    print(asset.name, asset.type)

# Read current values
for v in client.values(source_id="s.2"):
    print(v.id, v.val, v.status)

# Get trend data
for row in client.trends(point_ids=["s.2.4", "s.2.5"], date="2026-03-09"):
    print(row.ts, row.values)
```

## Development

```bash
git clone https://github.com/novant-io/novant-python.git
cd novant-python
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e ".[dev]"
```

The `dev` extra installs `pytest`, `build`, and `twine` — everything
needed for testing and publishing.

## Testing

Tests are integration tests that run against the live Novant API. Place a
test project's API key at `secret/test.key`, then:

```bash
pytest
```

Tests are skipped automatically if `secret/test.key` is missing.
