novant-python
Python SDK for the Novant API.
Full documentation at docs.novant.io/sdk/python.
Installation
pip install novant
Quick Start
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)
Organization Keys
Project keys (ak_xxx) are bound to a single project. Organization keys
(ak_org_xxx) can access any project in the organization, and must specify
which project to act on with proj_id:
client = NovantClient(api_key="ak_org_xxx")
# List all projects in the organization
for p in client.org_projects():
print(p.proj_id, p.proj_name)
# Pass proj_id per call
zones = client.zones(proj_id=4821)
# Or set a default proj_id for all calls
client = NovantClient(api_key="ak_org_xxx", proj_id=4821)
zones = client.zones()
All responses from project endpoints include the proj_id they were
served from:
print(zones.proj_id) # 4821
Development
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:
pytest
Tests are skipped automatically if secret/test.key is missing.
Organization key tests additionally require an org key at
secret/test.org_key, for an organization that contains the test project.
These tests are skipped if the key is missing.
Release files for novant 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| novant-0.6.0.tar.gz | 24.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| novant-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.4 kB
Release files / novant-0.6.0.tar.gz
| Download URL | novant-0.6.0.tar.gz |
|---|---|
| Size | 24.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90d13654bdc00015c16edf96bcae0f2147baf5bfea7e120c92393ec222adb343
|
|
BLAKE2b-256 checksum How to use checksums |
944f4b62a7bf604aaa7f2e64869286caa3087279380c96e0b283e970ca5a033a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / novant-0.6.0-py3-none-any.whl
| Download URL | novant-0.6.0-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f12ac9db9bd6b399979227ed64f3afbb70f8fabbcf6c6c119a162c9461453dc
|
|
BLAKE2b-256 checksum How to use checksums |
eb8c9504c45094a5eaf63ffd1b2ddd06771592e69ea39b7830830ae6cf315a73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|