Skip to main content

Library for Piscada Foresight; Access knowledge-graph and timeseries data.

Project description

Piscada Foresight

Access knowledge-graph and timeseries data.

Overview

This library provides access to the knowledge-graph and timeseries data in the Foresight platform. It implements a Transport using HTTPX to be used with the GQL GraphQL client. It provides the following modules:

  • data module: Read timeseries values as Pandas DataFrames or Series

    • get_value(): Get latest value before a given time
    • get_values(): Get values between start and end time
    • get_all_values(): Extract all values from a graph query response
  • domains module: Access domain definitions and trait hierarchies

    • Domain class: Contains traits and relationships for a domain
      • get_trait_by_id(): Gets a trait by its ID
    • get_domains(): Retrieve list of all available domains
    • get_trait_by_id(): Get a trait from any domain by its ID string
    • get_parent_traits(): Get all parent traits for a given trait
  • http module: OAuth2 authenticated transport

    • ForesightHTTPXTransport class: HTTPX transport with OAuth2 authentication
      • connect(): Establish authenticated connection

Installation

pip install piscada-foresight

You will need access to a Piscada Foresight instance. The library uses the OAuth2 Authorization Code Flow with Proof Key for Code Exchange (PKCE) to act on behalf of your user. After an initial interactive login, the library persists the session state in $HOME/.<client_id>_state and will use that to authenticate non-interactive the next time.

Usage

from datetime import datetime, timedelta, timezone
from uuid import UUID

from gql import Client

from piscada_foresight.data import get_value, get_values
from piscada_foresight.http import ForesightHTTPXTransport

# Create a transport with authentication and a GraphQL client:

transport = ForesightHTTPXTransport("foresight.piscada.cloud")
fs_client = Client(transport=transport, fetch_schema_from_transport=False)

# Retrieve timeseries values for a specific entity:

get_values(
    fs_client,
    UUID("ENTITY_ID"),
    datetime.now(tz=timezone.utc) - timedelta(hours=8),
)

Contributing

Contributions are welcome! You can contact us at foresight@piscada.com.

Support

If you have any questions, issues, or suggestions, please contact us at foresight@piscada.com.

Copyright

© Piscada AS 2024

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

piscada_foresight-0.3.2.tar.gz (100.8 kB view details)

Uploaded Source

Built Distribution

piscada_foresight-0.3.2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file piscada_foresight-0.3.2.tar.gz.

File metadata

  • Download URL: piscada_foresight-0.3.2.tar.gz
  • Upload date:
  • Size: 100.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for piscada_foresight-0.3.2.tar.gz
Algorithm Hash digest
SHA256 e756d6f2b6680c0d501a82f82ef7ac85cd90bc065d6f74595ddc7595be99b0e3
MD5 7fd8bff09b72c33535d93043bb8ed4f6
BLAKE2b-256 1f8c45f6f98ef9b9744680d479e09be83e14105452804cc09e175d250caaeb30

See more details on using hashes here.

File details

Details for the file piscada_foresight-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for piscada_foresight-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5a28afb2cce3d611b2a8ef1d6b001b356e4f10549bf2a37237844311dbbb2631
MD5 3b833e4ef95c1f66171272b73f5fe485
BLAKE2b-256 ccc3ac178580f0c23dd4283be17c102e016d9438b122b58fff9feefde77adcf9

See more details on using hashes here.

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