Arrakis Python client library
Project description
arrakis-python
Arrakis Python client library
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
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
arrakis-0.9.0.tar.gz
(168.4 kB
view details)
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
arrakis-0.9.0-py3-none-any.whl
(61.1 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ea9636c49a25643fcbf773ab033c896e160534bae3665c882ae4b0197f63769
|
|
| MD5 |
7ad61d299940c78a934dc65f69854d9b
|
|
| BLAKE2b-256 |
b12ad3624bfa964f8366a3658b5e71fff2417d63a0394c9739c9eae2c7241241
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f76e31ed0288082e12a687735ffa7fcd3c3201b4365d6be6b6d1ebbbc26dd666
|
|
| MD5 |
2a1cda7f0929b5b5ac30bafe1fcbf6c8
|
|
| BLAKE2b-256 |
00bc8ae4b505ece86cb9a1198345e48f397b7dda2313ae3e233f2a1bca5091fd
|