Skip to main content

A python library used to query data from the Eigen Ingenuity system

Project description

Python Eigen Ingenuity SDK

Overview

Python Eigen Ingenuity is a comprehensive Python library for accessing industrial data from Eigen Ingenuity instances. It enables seamless integration with time-series data, asset models, event logs, and SQL databases for analytics, automation, and ML workflows.

Supports Python 3.12+


Table of Contents


Core Modules

Each module is queried by first instantiating a client object that manages onnection to a certain api. e.g. get_histoiran_multi() then all queries are performed as methods on the returned class

e.g.

hm = get_historian_multi("demo.eigen.co", "Demo-influxdb")
current = hm.getCurrentDataPoints("DEMO_02TI301.PV")

1. Historian Multi

Query time-series data from multiple historians simultaneously. Handles reading, writing, and managing data point metadata.

Connection Function:

  • get_historian_multi — Initialize Historian Multi client

Reading Data Functions:

  • getCurrentDataPoints — Fetch the latest tag values instantly
  • getInterpolatedPoints — Retrieve interpolated data at specific timestamps
  • getInterpolatedRange — Get interpolated data across a time range
  • getRawDatapoints — Fetch raw historian data without interpolation
  • getClosestRawPoint — Find the nearest raw data point to a specific time

Aggregation Functions:

  • getAggregates — Compute statistics (min, max, avg, stdDev, median, count, etc.)
  • getAggregateIntervals — Calculate aggregates over regular time intervals

Metadata Functions:

  • listHistorians — List all available historian connections
  • listDataTags — Retrieve all data tags from a historian
  • getMetaData — Fetch metadata for specific tags
  • createTag — Create a new data tag
  • updateTag — Modify existing tag configuration

Writing Data Functions:

  • writePoints — Write individual data points to tags
  • writePointsBatch — Batch write multiple data points efficiently
  • createPoint — Create a formatted data point object
  • createAndPopulateTag — Create a new tag and immediately populate it with data

2. Asset Model

Navigate the Neo4J asset model to browse assets, their properties, related assets, and associated measurements.

Connection Function:

  • get_assetmodel — Initialize Asset Model Client

Core Functions:

  • getRelatedAssets — Retrieve all instruments or components related to an asset
  • getProperties — Get metadata fields and custom properties from assets
  • getMeasurements — Fetch all timeseries measurements configured for an asset
  • executeRawQuery — Run custom Neo4J Cypher queries against the asset model
  • getDocuments — Retrieve reference documents attached to assets
  • getLabels — Get asset classification labels
  • getMatchingNodes — Find assets matching specific criteria

3. Eventlog

Query, filter, and manage event records in the Ingenuity event log system.

Connection Function:

  • get_eventlog — Initialize Eventlog client

Query Functions:

  • getEvents — Execute raw queries with filters (severity, type, source, etc.)
  • getEventsBySource — Filter events by source identifier (partial or exact match)
  • getEventsByType — Filter events by event type
  • getEventsById — Retrieve events by event ID, external ID, or episode ID

Management Functions:

  • pushToEventlog — Create and push new events to the event log
  • deleteEventsById — Remove unwanted events in bulk

4. SQL

Execute read-only queries against SQL databases connected to Ingenuity instances.

Connection Function:

  • get_sql — Initialize SQL client

Query Functions:

  • executeRawQuery — Execute raw SQL queries with multiple output formats (JSON, DataFrame, CSV file)
  • listDatabases — Retrieve list of available SQL databases
  • listTables — List tables within a specific database

5. Common Menu

Query asset relationships, measurements, properties, and documents through a unified interface.

Connection Function:

  • get_common_menu — Initialize Common Menu client

Functions:

  • getRelatedAssets — Query related assets
  • getProperties — Fetch asset properties
  • getMeasurements — Get measurements for assets
  • getDocuments — Retrieve associated documents
  • getEvents — Query events from the Common Menu perspective
  • getDrivers — Get driver information

6. Elastic (Deprecated)

Legacy module for querying Elasticsearch-backed data sources. Flagged for removal in a future release. Use Eventlog instead.

Connection Function:

  • get_elastic — Initialize legacy Elastic client

7. Historian (Deprecated)

Legacy single-historian client. Flagged for removal in a future release. Use Historian Multi instead.

Connection Function:

  • get_historian — Initialize legacy Historian client for a single data source

Authentication

The library supports Azure authentication with:

  • User Credentials Flow — Interactive authentication
  • CLIENT_CREDENTIALS Flow — Service principal authentication
  • API Token — Direct token-based access

Configuration Functions:

  • set_azure_tenant_id — Specify Azure tenant
  • set_azure_client_id — Specify client/application ID
  • set_azure_client_secret — Specify client secret (for CLIENT_CREDENTIALS)
  • set_api_token — Set API token alternative to Azure auth
  • set_auth_scope — Configure OAuth scope
  • disable_azure_auth — Skip Azure authentication
  • disable_auth_token_cache — Disable token caching for security
  • clear_auth_token_cache — Remove cached tokens

Key Features

Multi-Source Data Access — Query historians, asset models, SQL, and events in one library
Aggregations & Statistics — Built-in support for min, max, average, standard deviation, median, and more
Batch Operations — Efficient bulk writes and queries
Azure Authentication — Enterprise authentication support
Flexible Output — JSON, DataFrames, files, or raw responses
Time-Series Focused — Purpose-built for industrial data workflows
Neo4J Integration — Direct access to asset model graph database


Further Documentation

For complete function signatures, detailed parameters, and code examples, visit:

📖 https://docs.eigeningenuity.co/developing-with-eigen/python-library/


Support

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_eigen_ingenuity-0.5.27.tar.gz (106.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_eigen_ingenuity-0.5.27-py3-none-any.whl (147.7 kB view details)

Uploaded Python 3

File details

Details for the file python_eigen_ingenuity-0.5.27.tar.gz.

File metadata

  • Download URL: python_eigen_ingenuity-0.5.27.tar.gz
  • Upload date:
  • Size: 106.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for python_eigen_ingenuity-0.5.27.tar.gz
Algorithm Hash digest
SHA256 05fa5bbfcc4d75efe9e856a757d52ad7f992eb02569542032a4c9f095e82179f
MD5 524971408a84ebe69621974941572d7f
BLAKE2b-256 0b5873e8df4257cfea01b2c236fa6927547fbc7ae15700107f98bd8dda5739e9

See more details on using hashes here.

File details

Details for the file python_eigen_ingenuity-0.5.27-py3-none-any.whl.

File metadata

File hashes

Hashes for python_eigen_ingenuity-0.5.27-py3-none-any.whl
Algorithm Hash digest
SHA256 172fab1a3ef2d10589c24615d76d41f9ee6d39a0cc8da703368d23c8e2f1e0fc
MD5 4ba87a81ae40822e0deaeb5c5ee48bbb
BLAKE2b-256 2b7d50e9540d25c5550ec731217956ce0c3517eb7558b57cc66ef995e41afe50

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page