Python library to communicate with varies systems such as Wood NEXUS IC, Maximo and OSI PI
Project description
pynexusic
pynexusic
is a package that allows communication with the following tools:
- Wood NEXUS IC
- Maximo
- OSI PI
- Documentum
Python library installation
pip install pynexusic
Library documentation
-
Import
utils
from pynexusic import utils
-
Launch documentation
utils.launchDocs()
External documentation
NEXUS IC
NEXUS IC REST API documentation can be found in the following link:
https://docs.nexusic.com/6.7/ic-web.rest.v2.html
A specific NEXUS IC version can be specified in the above link by changing 6.7 to the desired NEXUS IC version
OSI PI
OSI PI API documentation can be found in the following link:
https://techsupport.osisoft.com/Documentation/PI-Web-API/help.html
Maximo
Maximo API documentation can be found in the following link:
Examples
NEXUS IC Examples
-
Example 1: Get system version
-
Import
NEXUSIC_RESTAPI
from pynexusic import NEXUSIC_RESTAPI as api
-
Initialize
NEXUSIC_REST
classNX_REST = api.NEXUSIC_REST(baseURI, api_key=APIKey)
where APIKey is the user's API Key provided by the system administrator
-
Execute required function
result, result_status_code = NX_REST.getVersion()
Output:
result = {'version': 'x.x.xxxxx.x', 'schema': 'x.xxx'} result_code = 200
-
-
Example 2: Run reports and get python object response
-
Import
NEXUSIC_RESTAPI
from pynexusic import NEXUSIC_RESTAPI as api
-
Initialize
NEXUSIC_REST
classNX_REST = api.NEXUSIC_REST(baseURI, api_key=APIKey)
where APIKey is the user's API Key provided by the system administrator
-
Execute required report
result, result_status_code = NX_REST.getDashboard(report_name)
where report_name is the name of the report to be executed in NEXUS IC
Output:
result = {'name': 'xxxxxxxxxxx', 'elements': [{'type': 'section', 'data': {}}, {'type': 'paragraph', 'data': {'text': [{'value': 'xxxxxx'}]}} ] } result_code = 200
The values of the elements key will contain the data configured in the NEXUS IC report template
-
OSI PI Examples
-
Example 1: Get full list of points in the database
-
Import
OSIPI_WebAPI
from pynexusic import OSIPI_WebAPI as OSIPI
-
Initialize
OSIPI_WebAPI
classOSIPI_obj = OSIPI.OSIPI_WebAPI(piwebapi_uri, username, password)
an example for piwebapi_uri is https://[domain].com/piwebapi
-
Execute required function
result, result_status_code = OSIPI_obj.getPointsList(pageSize=20000)
Output:
result = [{'ServerName': 'xxxxxxxxxxx', 'Points': [{'WebId': 'xxxxxxxxxx', 'Id': xxxxx, ...}], 'ResponseStatus': 200 }] result_status_code = None
-
-
Example 2: Get stream summary data
-
Import
OSIPI_WebAPI
from pynexusic import OSIPI_WebAPI as OSIPI
-
Initialize
OSIPI_WebAPI
classOSIPI_obj = OSIPI.OSIPI_WebAPI(piwebapi_uri, username, password)
an example for piwebapi_uri is https://[domain].com/piwebapi
-
Execute required function
result, result_status_code = OSIPI_obj.getStreamDataSummary(webID, startTime='*-2mo', endTime='*-1mo', summaryType='Average')
where webID is the required stream webID, for more details see OSI PI documentation
Output:
result = {'Links': {}, 'Items': [{'Type': 'Average', 'Value': {'Timestamp': 'xxxxxxxx', 'Value': xxxxxx, ...} }] } result_status_code = 200
-
Maximo Examples
To be developed soon
Documentum Examples
-
Example 1: Getting all repositories
-
Import
DOCUMENTUM_API
from pynexusic import DOCUMENTUM_API as api
-
Initialize
DOCUMENTUM_API
classdoc_api = api.DOCUMENTUM_API(url, username=username, password=password, verbose=True)
-
Getting all repositories
repos = doc_api.get_repositories()
Output:
repos = [{'id': 'xxxx', 'title': 'xxxx' ...} ... ]
-
-
Example 2: Getting a specific repositories
-
Import
DOCUMENTUM_API
from pynexusic import DOCUMENTUM_API as api
-
Initialize
DOCUMENTUM_API
classdoc_api = api.DOCUMENTUM_API(url, username=username, password=password, verbose=True)
-
Getting a specific repositories
repo = doc_api.get_repository(repo_name)
where repo_name is the name of the report to be extracted from Documentum
Output:
repo = {'id': 'xxxx', 'title': 'xxxx' ...}
-
Change history
(V2.5.1) Changes
- NEXUSIC_RESTAPI:
- Added
getChangeLog
function to allow user to pull data changes from the NEXUS IC database
- Added
(V2.5.0) Changes
- NEXUSIC_RESTAPI:
- Added
createLinkedAssets
function to allow user to created linked assets in the NEXUS IC database - Modified
createNewAssets
function to bypass asset type if not included in the input dictionary - Created
AssetNode
class to allow usage of graph algorithms to represent Asset Hierarchy. Only implemented for NEXUSIC - Added
addGraphAsset
function to all users add an asset to the graph data structure. Implemented following Depth-first search algorithm - Rewrote
getAssetByFullLocation
function to avoid using the Full_Location as an API call query parameter and implemented the solution using graph algorithms
- Added
(V2.4.3) Changes
- NEXUSIC_RESTAPI:
- Added response status code 204 to
validate_and_return_response
function
- Added response status code 204 to
- MAXIMO_API:
- Added response status code 204 to
validate_and_return_response
function
- Added response status code 204 to
- OSIPI_WebAPI:
- Added response status code 204 to
validate_and_return_response
function
- Added response status code 204 to
- DOCUMENTUM_API:
- Added response status code 204 to
validate_and_return_response
function
- Added response status code 204 to
- Utils:
- Added Utils to documentation
(V2.4.2) Changes
- NEXUSIC_RESTAPI:
- Fixed a bug with logger level
(V2.4.1) Changes
- NEXUSIC_RESTAPI:
- Fixed the reference to the utils file
- MAXIMO_API:
- Fixed the reference to the utils file
- OSIPI_WebAPI:
- Fixed the reference to the utils file
- DOCUMENTUM_API:
- Fixed the reference to the utils file
(V2.4.0) Changes
- Utils:
- Added
setup_logger
function to setup logger - Added
print_log
function to print to console and log file
- Added
- NEXUSIC_RESTAPI:
- Replaced all
print
statements withutils.print_log
- Removed
self.verbose
from all functions
- Replaced all
- MAXIMO_API:
- Replaced all
print
statements withutils.print_log
- Removed
self.verbose
from all functions
- Replaced all
- OSIPI_WebAPI:
- Replaced all
print
statements withutils.print_log
- Removed
self.verbose
from all functions
- Replaced all
- DOCUMENTUM_API:
- Replaced all
print
statements withutils.print_log
- Removed
self.verbose
from all functions
- Replaced all
(V2.3.11) Changes
- NEXUSIC_RESTAPI:
- Fixed a bug in
getLookupListItem
function
- Fixed a bug in
(V2.3.10) Changes
- MAXIMO_API:
- Fixed a bug in the
MAXAUTH
authentication method
- Fixed a bug in the
(V2.3.9) Changes
- MAXIMO_API:
- Added
MAXAUTH
as another authentication method
- Added
(V2.3.8) Changes
- MAXIMO_API:
- Added the ability to decide whether to skip SSL verification during authentication
(V2.3.7) Changes
- NEXUSIC_RESTAPI:
- Changed the error handler for the
validate_and_return_response
function to raise an Exception instead of returning a string - In the
getLookupListItem
function: Added the ability to pass the Lookup list name as a filter parameter
- Changed the error handler for the
(V2.3.6) Changes
- OSIPI_WebAPI:
- Improved
validate_and_return_response
function error handler
- Improved
(V2.3.5) Changes
- MAXIMO_API:
- Added
use_oslc
tooslc_update_record
function to allow using either oslc or rest in the Post call
- Added
(V2.3.4) Changes
- NEXUSIC_RESTAPI:
- Fixed a bug in
createNewRecord
function
- Fixed a bug in
(V2.3.3) Changes
- MAXIMO_API:
- Added
oslc_create_new_record
function - Added
oslc_update_record
function - Added
mbo_exec_method
function
- Added
(V2.3.2) Changes
- Docs:
- Added library Sphinx docs
(V2.3.1) Changes
- MAXIMO_API:
- Added the ability to run API calls using _mif
- Added
mbo_update_record
function - Added
mbo_get_table
function
- DOCUMENTUM_API:
- Added new connector to DOCUMENTUM
(V2.2.1) Changes
- NEXUSIC_RESTAPI:
- Added
jobStatus
function - Added
jobContent
function - Added
importLibrary
function
- Added
(V2.2.0) Changes
- NEXUSIC_RESTAPI:
- Added
generateReport_v2
function - Added
get_rt_id
function - Added
importRepository
function - Added
importMultimedia
function - Updated
createNewEvents
function to import events multimedia
- Added
- MAXIMO_API:
- Added
get_mx_wos
function - Added
get_mx_srs
function - Added
mxapi_post_request
function - Added
mbo_create_new_record
function - Renamed
get_table
tooslc_get_table
- Added
(V2.1.8) Changes
- NEXUSIC_RESTAPI:
- Added
createNewAssets
function
- Added
(V2.1.7) Changes
- NEXUSIC_RESTAPI:
- Added
component_id
field in the event input dictionary increateNewEvents
function - Optimized
createNewEvents
function performance
- Added
(V2.1.6) Changes
- NEXUSIC_RESTAPI:
- Added the following arguments to
createNewEvents
function:sameAsset
sameWorkpack
sameEventType
sameSurveySet
- Fixed a bug in
createNewEvents
function to import continuous events
- Added the following arguments to
(V2.1.5) Changes
- NEXUSIC_RESTAPI:
- Added
getLookupListItem
function
- Added
(V2.1.4) Changes
- NEXUSIC_RESTAPI:
__init__.py
version import bug fix
(V2.1.3) Changes
- NEXUSIC_RESTAPI:
- Added the ability to get multiple pages in the
getTable
function - Removed
current_attempt
arugment from:- getAssetLocationByName
- getAssetLocationByID
- getAssetChildren
- getAssetTypesID
- getTableDBNames
- getAssetByFullLocation
- getTableDefInfo
- Added the ability to get multiple pages in the
(V2.1.2) Changes
- NEXUSIC_RESTAPI:
- Added
getAssetByFullLocation
function - Added
getTableDefInfo
function - Added
createNewEvents
function
- Added
- OSIPI_WebAPI:
- Added docstring
- MAXIMO_API:
- Added docstring
(V2.1.1) Changes:
- OSIPI_WebAPI:
- Added the ability to retrieve multiple AssetServers and DataServers in
get_system_links
function - Added the ability to get points list for a specific DataServer in
getPointsList
function.
- Added the ability to retrieve multiple AssetServers and DataServers in
(V2.1.0) Changes:
- NEXUSIC_RESTAPI:
- Added
createNewRecord
function
- Added
- MAXIMO_RESTAPI:
- Added read only connector class
- OSIPI_WebAPI:
- Added read only connector class
(V2.0.5) Changes:
- NEXUSIC_RESTAPI:
- Improved disconnection error handler
getAssetChildren
function: Added the ability to search at a specific level- Added
getAssetTypesID
function - Added
getTableDBNames
function
(V2.0.4) Changes:
- NEXUSIC_RESTAPI:
- Added
getAssetLocationByName
function - Added
getAssetLocationByID
function - Added
getAssetChildren
function
- Added
(V2.0.3) Changes:
- NEXUSIC_RESTAPI:
- Added the ability to authenticate using two modes (APIKEY and BASIC)
- APIKEY: Requires an API Key to authenticate
- BASIC: Requires username and password
- Added the ability to authenticate using two modes (APIKEY and BASIC)
(V2.0.2) Changes:
- NEXUSIC_RESTAPI:
- Added the ability to bypass SSL verification
(V2.0.1) Changes:
- Initial deployment in pypi.org
License
This project is licensed under the MIT license.
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
Hashes for pynexusic-2.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81ec77af62f83f99be02fa64b951dc4ad2c58aba4226b6292dfac671b78c4728 |
|
MD5 | 56d93bb76d5aa16c34213859eaadc5c6 |
|
BLAKE2b-256 | 1578c9759cc2047b0b7a53a4aeb0f431eccb78093f7c811db0257f4593792068 |