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 instantlygetInterpolatedPoints— Retrieve interpolated data at specific timestampsgetInterpolatedRange— Get interpolated data across a time rangegetRawDatapoints— Fetch raw historian data without interpolationgetClosestRawPoint— 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 connectionslistDataTags— Retrieve all data tags from a historiangetMetaData— Fetch metadata for specific tagscreateTag— Create a new data tagupdateTag— Modify existing tag configuration
Writing Data Functions:
writePoints— Write individual data points to tagswritePointsBatch— Batch write multiple data points efficientlycreatePoint— Create a formatted data point objectcreateAndPopulateTag— 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 assetgetProperties— Get metadata fields and custom properties from assetsgetMeasurements— Fetch all timeseries measurements configured for an assetexecuteRawQuery— Run custom Neo4J Cypher queries against the asset modelgetDocuments— Retrieve reference documents attached to assetsgetLabels— Get asset classification labelsgetMatchingNodes— 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 typegetEventsById— Retrieve events by event ID, external ID, or episode ID
Management Functions:
pushToEventlog— Create and push new events to the event logdeleteEventsById— 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 databaseslistTables— 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 assetsgetProperties— Fetch asset propertiesgetMeasurements— Get measurements for assetsgetDocuments— Retrieve associated documentsgetEvents— Query events from the Common Menu perspectivegetDrivers— 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 tenantset_azure_client_id— Specify client/application IDset_azure_client_secret— Specify client secret (for CLIENT_CREDENTIALS)set_api_token— Set API token alternative to Azure authset_auth_scope— Configure OAuth scopedisable_azure_auth— Skip Azure authenticationdisable_auth_token_cache— Disable token caching for securityclear_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
- Documentation Portal: https://docs.eigeningenuity.co/
- Support Tickets: https://eigen.freshdesk.com
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_eigen_ingenuity-0.5.29b1.tar.gz.
File metadata
- Download URL: python_eigen_ingenuity-0.5.29b1.tar.gz
- Upload date:
- Size: 107.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b264a7431f3647e594d54cd48ab912e68b3edc4b0a356d3a8301161a7482eba
|
|
| MD5 |
0c6f029f7f9407591f5ab6193ffab7e9
|
|
| BLAKE2b-256 |
0061104758cea44d165601dbab7f97d70a489ed60db2c902de379d85c12f15b4
|
File details
Details for the file python_eigen_ingenuity-0.5.29b1-py3-none-any.whl.
File metadata
- Download URL: python_eigen_ingenuity-0.5.29b1-py3-none-any.whl
- Upload date:
- Size: 149.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b5246270b8036621204d7f06af3de529f75d4cc28372591c603ab135aaa903d
|
|
| MD5 |
a90d8b8a7b15e46d05603a971202f4df
|
|
| BLAKE2b-256 |
21dd7eb628fe599846aaed2535410aa8de9ddaaa67685af075229ca8d858667c
|