Overview
The nortech-python
library is the official Python client for interacting with the Nortech AI platform. It provides a comprehensive interface to access and manage various components of the Nortech ecosystem, including metadata, data tools, and derivers.
The Nortech
class serves as the primary entry point for the library. It encapsulates the core functionalities and provides a unified interface to interact with the Nortech API. It has 3 main components:
- Metadata: Access and manage metadata such as workspaces, assets, divisions, units, devices, and signals, as per the Cloud Domain Model (link).
- Datatools: Fetch and manipulate signal data, supporting both Pandas and Polars DataFrames, time window queries, and signal filtering.
- Derivers: Create and manage derivers, which allow computation of new signals based on existing ones. This includes creating deriver schemas, deploying derivers, managing configurations, and testing locally.
The Nortech
class is designed to be flexible, allowing customization of API settings such as the base URL, API key, pagination behaviour, and user agent. This makes it easy to integrate the library into various environments and workflows.
Dependencies
This package relies heavily in the following packages, and it is recommended that users have basic knowledge of them:
- Pydantic - Used for schema validation and manipulation.
- Pandas or Polars - Used for managing signal datasets.
Installation
You can install using pip:
pip install nortech
Or if you are using poetry:
poetry add nortech
Or if you are using UV:
uv add nortech
Configuration
Setup your environment variables with your Nortech API Key (see how to obtain it):
export NORTECH_API_KEY="<NORTECH_API_KEY>
Alternatively you can create a .env
file in the root directory of your project with the content:
NORTECH_API_KEY="<NORTECH_API_KEY>"
Usage
To start using the SDK instantiate the Nortech client.
from nortech import Nortech
nortech = Nortech()
The previous configuration can also be ignored, by instantiating the client with the needed settings. However using the previous method is preferred as it provides more security.
nortech = Nortech(api_key="<NORTECH_API_KEY>")
Pagination
This feature is implemented like in the API. By default it is disabled. To enable it add the following line to your config:
NORTECH_API_IGNORE_PAGINATION=False
Listing functions, mostly present in the nortech.core
section, have an optional PaginationOptions
input object. This object has 4 fields:
- size - Defines the maximum number of items to be returned by the function.
- sort_by - Defines which item field should be used for sorting.
- sort_order - Defines the sorting order, ascending or descending.
- next_token - Used to fetch the next page. Obtained from a previous request.
These functions return a PaginatedResponse
object containing 3 functions:
- size - Number of items returned.
- data - List of items returned.
- next.token - Token that can be used in the
PaginationOptions
to fetch the next page.
PaginatedResponse
also has a next_pagination_options
method that returns a PaginationOptions
, which can also be used to fetch the next page.