# Nominal Python Client

An Open-source Python library for working with the [Nominal](https://nominal.io) platform. It allows you to automate data upload, streaming, and retrieval.

## Intro

Once you [install](https://dev.nominal.io/python/guides/install.md) the library and set-up your [API keys](https://dev.nominal.io/python/guides/api-keys-setup.md), you can easily upload data to Nominal.

```python
from nominal.core import NominalClient

client  = NominalClient.from_profile("default")
asset   = client.get_or_create_asset_by_properties({"serial": "SN42"}, name="Test stand SN42")
dataset = asset.get_or_create_dataset("primary")
file    = dataset.add_tabular_data("run.csv", timestamp_column="time", timestamp_type="iso_8601")  # your CSV
file.poll_until_ingestion_completed()  # raises NominalIngestError if the ingest fails
print(asset.nominal_url)
```

## Let’s go

API keys setup

Create an API key and save it as a profile.

[API Keys Setup](https://dev.nominal.io/python/guides/api-keys-setup.md)

Quickstart

Upload a file, stream data, mark a run and read it back.

[Python quickstart](https://dev.nominal.io/python/guides/quickstart.md)

Examples

Full, runnable scripts.

[Examples](https://dev.nominal.io/python/examples.md)

Reference

Every class, function and `nom` command.

[Reference](https://dev.nominal.io/python/ref.md)
