Quickstart
The official Nominal Python client.
Nominal is the leading platform for operationalizing test data.
Installation
If you don’t have Python installed, you can download it for free from the Python Software Foundation. We support versions 3.9 through 3.12.
To check whether Python is installed, open your shell (the Terminal application on Mac, and Command Prompt on Windows), and type python⏎
.
If you receive an error, you likely do not have Python installed on your machine.
The Nominal Python Client can be installed with pip
:
Installing with Extras
The nominal client contains several opt-in features that come with their own additional, heavier dependencies. Today, these include:
hdf5
: ingesting / working withHDF5
filesprotos
: directly streaming data to Nominal using protobuf
You may install these using, for example, pip install nominal[hdf5]
, or pip install nominal[hdf5,protos]
for the latest version of the client.
See here for more information.
Version
We use semantic versioning for the Nominal Python Client. To see the client version, run the following from within Python:
Upgrading `nominal` version
To update the version of the client installed with pip
, run:
As a best practice, we recommend regularly updating your client to ensure that you receive bugfixes and other improvements in a timely fashion.
Connect to Nominal
Concepts
- Base URL: The URL through which the Nominal API is accessed (typically
https://api.gov.nominal.io/api
; shown under Settings → API keys). - Workspace: A mechanism by which to isolate datasets; each user has one or more workspace, and data in one cannot be seen from another. Note that a token / API key is attached to a user, and may access multiple workspaces.
- Profile: A combination of base URL, API key, and workspace.
There are two primary ways of authenticating the Nominal Client. The first is to use a profile stored on disk, and the second is to use a token directly.
Storing credentials to disk
Run the following in a terminal and follow on-screen prompts to set up a connection profile:
Here, “default” can be any name chosen to represent this profile (reminder: a profile represents a base URL, API key, and workspace).
The profile will be stored in ~/.config/nominal/config.yml
, and can then be used to create a client:
If you have previously used nom
to store credentials, prior to the availability of profiles, you will need to migrate your old configuration file (~/.nominal.yml
) to the new format (~/.config/nominal/config.yml
).
You can do this with the following command:
Directly using credentials in your scripts
NOTE: you should never share your Nominal API key with anyone. We therefore recommend that you not save it in your code and/or scripts.
Usage examples
Upload a Dataset
Download this example CSV to your local computer:
Then upload the CSV file to Nominal:
Create a Run
In Nominal, Runs are time bounded views onto multimodal test data - including Datasets, Videos, Logs, and database connections.
To see your organization’s latest Runs, head over to the Runs page
Add Data to a Run
(Scroll up to Upload a dataset to see how the csv_dataset
was created.)
Create a Run with Data
Create a Run and add a Dataset to it in one swoop.
Update Run metadata
See Run.update()
Please refer to the Function Reference and guides on the left-hand sidebar for more extensive examples.
Appendix
Tips & tricks for test engineers getting started with Python.
Python is the fastest growing language in STEM for data analytics. It’s free and functionally equivalent to MATLAB in many respects.
Python IDEs
If you’re new to scripting in Python, below are a few recommendations for Python IDEs (integrated development environments).
Jupyter
The guides on this website are styled after Jupyter notebook, a free and beginner-friendly analysis environment for Python. If you’re creating a lot of charts, or enjoy narrating your analysis code with text, you may find Jupyter productive.
VSCode
VSCode is a more minimalist, equally popular development environment for Python. If you’re creating automation scripts in Python that do not involve charts or analysis, the streamlined UX of VSCode may be appealing.