Skip to main content

A client library for accessing gnista.io

Project description

Gitlab Pipeline Python Version PyPI version License Downloads

gnista-library

A client library for accessing gnista.io

Tutorial

Create new Poetry Project

Navigate to a folder where you want to create your project and type

poetry new my-gnista-client
cd my-gnista-client

Add reference to your Project

Navigate to the newly created project and add the PyPI package

poetry add gnista-library

Your first DataPoint

Create a new file you want to use to receive data this demo.py

from gnista_library import KeyringGnistaConnection, GnistaDataPoint, GnistaDataPoints

connection = KeyringGnistaConnection()

data_point_id = "56c5c6ff-3f7d-4532-8fbf-a3795f7b48b8"
data_point = GnistaDataPoint(connection=connection, data_point_id=data_point_id)

data_point_data = data_point.get_data_point_data()

print(data_point_data)

You need to replace the DataPointId with an ID from your gnista.io workspace.

For example the DataPointId of this DataPoint https://aws.gnista.io/secured/dashboard/datapoint/4684d681-8728-4f59-aeb0-ac3f3c573303 is 4684d681-8728-4f59-aeb0-ac3f3c573303

Run and Login

Run your file in poetry's virtual environment

$ poetry run python demo.py
2021-09-02 14:51.58 [info     ] Authentication has been started. Please follow the link to authenticate with your user: [gnista_library.gnista_connetion] url=https://aws.gnista.io/authentication/connect/authorize?client_id=python&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fhome&response_type=code&scope=data-api%20openid%20profile%20offline_access&state=myState

In order to login copy the url into your Browser and Login to gnista.io or, if allowed a browser window will open by itself.

Keystore

Once you loggedin, the library will try to store your access token in your private keystore. Next time you run your programm, it might request a password to access your keystore again to gain access to gnista.io Please take a look at Keyring for details.

Advanced Example

Show received Data in a plot

poetry new my-gnista-client
cd my-gnista-client
poetry add gnista-library
poetry add structlib
poetry add matplotlib
import matplotlib.pyplot as plt
from structlog import get_logger

from gnista_library import KeyringGnistaConnection, GnistaDataPoint, GnistaDataPoints

log = get_logger()

connection = KeyringGnistaConnection()

data_point_id = "56c5c6ff-3f7d-4532-8fbf-a3795f7b48b8"
data_point = GnistaDataPoint(connection=connection, data_point_id=data_point_id)

data_point_data = data_point.get_data_point_data()
log.info("Data has been received. Plotting")
data_point_data.plot()
plt.show()

Filter by DataPoint Names

poetry new my-gnista-client
cd my-gnista-client
poetry add gnista-library
poetry add structlib
poetry add matplotlib
import matplotlib.pyplot as plt
from structlog import get_logger

from gnista_library import KeyringGnistaConnection, GnistaDataPoint, GnistaDataPoints

log = get_logger()

connection = KeyringGnistaConnection()

dataPoints = GnistaDataPoints(connection=connection)
data_point_list = list(dataPoints.get_data_point_list())

for data_point in data_point_list:
    log.info(data_point)

# Find Specific Data Points
filtered_data_points = filter(
    lambda data_point: data_point.name.startswith("371880214002"), data_point_list
)
for data_point in filtered_data_points:
    # get the data
    data_point_data = data_point.get_data_point_data()
    log.info(data_point_data)
    data_point_data.plot()
    plt.show()

Links

Website gnista.io

PyPi PyPi

GIT Repository Gitlab

Project details


Download files

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

Source Distribution

gnista-library-2.0.2.tar.gz (38.1 kB view hashes)

Uploaded Source

Built Distribution

gnista_library-2.0.2-py3-none-any.whl (109.6 kB view hashes)

Uploaded Python 3

Supported by

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