Skip to main content

Arrakis Python client library

Project description

arrakis-python

Arrakis Python client library

ci ci documentation pypi version conda version


Resources

Installation

With pip:

pip install arrakis

With conda:

conda install -c conda-forge arrakis-python

Features

  • Query live and historical timeseries data
  • Describe channel metadata
  • Search for channels matching a set of conditions
  • Publish timeseries data

Quickstart

Fetch timeseries

import arrakis

start = 1187000000
end = 1187001000
channels = [
    "H1:CAL-DELTAL_EXTERNAL_DQ",
    "H1:LSC-POP_A_LF_OUT_DQ",
]

block = arrakis.fetch(channels, start, end)
for channel, series in block.items():
    print(channel, series)

where block is a [arrakis.block.SeriesBlock][] and series is a [arrakis.block.Series][].

Stream timeseries

1. Live data
import arrakis

channels = [
    "H1:CAL-DELTAL_EXTERNAL_DQ",
    "H1:LSC-POP_A_LF_OUT_DQ",
]

for block in arrakis.stream(channels):
	print(block)
2. Historical data
import arrakis

start = 1187000000
end = 1187001000
channels = [
    "H1:CAL-DELTAL_EXTERNAL_DQ",
    "H1:LSC-POP_A_LF_OUT_DQ",
]

for block in arrakis.stream(channels, start, end):
    print(block)

Describe metadata

import arrakis

channels = [
    "H1:CAL-DELTAL_EXTERNAL_DQ",
    "H1:LSC-POP_A_LF_OUT_DQ",
]

metadata = arrakis.describe(channels)

where metadata is a dictionary mapping channel names to [arrakis.channel.Channel][].

Find channels

import arrakis

for channel in arrakis.find("H1:LSC-*"):
    print(channel)

where channel is a [arrakis.channel.Channel][].

Count channels

import arrakis

count = arrakis.count("H1:LSC-*")

Publish timeseries

from arrakis import Channel, Publisher, SeriesBlock, Time
import numpy

# admin-assigned ID
publisher_id = "my_producer"

# define channel metadata
metadata = {
    "H1:FKE-TEST_CHANNEL1": Channel(
        "H1:FKE-TEST_CHANNEL1",
        data_type=numpy.float64,
        sample_rate=64,
    ),
    "H1:FKE-TEST_CHANNEL2": Channel(
        "H1:FKE-TEST_CHANNEL2",
        data_type=numpy.int32,
        sample_rate=32,
    ),
}

publisher = Publisher(publisher_id)
publisher.register()

with publisher:
    # create block to publish
    series = {
        "H1:FKE-TEST_CHANNEL1": numpy.array([0.1, 0.2, 0.3, 0.4], dtype=numpy.float64),
        "H1:FKE-TEST_CHANNEL2": numpy.array([1, 2], dtype=numpy.int32),
    }
    block = SeriesBlock(
        1234567890 * Time.SECONDS,  # time in nanoseconds for first sample
        series,                     # the data to publish
        metadata,                   # the channel metadata
    )

    # publish timeseries
    publisher.publish(block)

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

arrakis-0.9.0.tar.gz (168.4 kB view details)

Uploaded Source

Built Distribution

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

arrakis-0.9.0-py3-none-any.whl (61.1 kB view details)

Uploaded Python 3

File details

Details for the file arrakis-0.9.0.tar.gz.

File metadata

  • Download URL: arrakis-0.9.0.tar.gz
  • Upload date:
  • Size: 168.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.4 cpython/3.13.11 HTTPX/0.28.1

File hashes

Hashes for arrakis-0.9.0.tar.gz
Algorithm Hash digest
SHA256 3ea9636c49a25643fcbf773ab033c896e160534bae3665c882ae4b0197f63769
MD5 7ad61d299940c78a934dc65f69854d9b
BLAKE2b-256 b12ad3624bfa964f8366a3658b5e71fff2417d63a0394c9739c9eae2c7241241

See more details on using hashes here.

File details

Details for the file arrakis-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: arrakis-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 61.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.4 cpython/3.13.11 HTTPX/0.28.1

File hashes

Hashes for arrakis-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f76e31ed0288082e12a687735ffa7fcd3c3201b4365d6be6b6d1ebbbc26dd666
MD5 2a1cda7f0929b5b5ac30bafe1fcbf6c8
BLAKE2b-256 00bc8ae4b505ece86cb9a1198345e48f397b7dda2313ae3e233f2a1bca5091fd

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