Skip to content

api

Clientless API access.

count

count(pattern=constants.DEFAULT_MATCH, data_type=None, min_rate=constants.MIN_SAMPLE_RATE, max_rate=constants.MAX_SAMPLE_RATE, publisher=None, time=None, replay_id=None)

Count channels matching a set of conditions

Parameters:

Name Type Description Default
pattern str

Channel pattern to match channels with, using regular expressions.

DEFAULT_MATCH
data_type dtype - like | list[dtype - like]

If set, find all channels with these data types.

None
min_rate int

Minimum sample rate for channels.

MIN_SAMPLE_RATE
max_rate int

Maximum sample rate for channels.

MAX_SAMPLE_RATE
publisher str | list[str]

If set, find all channels associated with these publishers.

None
time float

GPS time in seconds indicating when the metadata query is valid. If None, routes to the live backend (current state).

None
replay_id str

Server-registered replay identifier.

None

Returns:

Type Description
int

The number of channels matching query.

Source code in arrakis/api.py
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
def count(
    pattern: str = constants.DEFAULT_MATCH,
    data_type: DataTypeLike | None = None,
    min_rate: int | None = constants.MIN_SAMPLE_RATE,
    max_rate: int | None = constants.MAX_SAMPLE_RATE,
    publisher: str | list[str] | None = None,
    time: float | None = None,
    replay_id: str | None = None,
) -> int:
    """Count channels matching a set of conditions

    Parameters
    ----------
    pattern : str, optional
        Channel pattern to match channels with, using regular expressions.
    data_type : numpy.dtype-like | list[numpy.dtype-like], optional
        If set, find all channels with these data types.
    min_rate : int, optional
        Minimum sample rate for channels.
    max_rate : int, optional
        Maximum sample rate for channels.
    publisher : str | list[str], optional
        If set, find all channels associated with these publishers.
    time : float, optional
        GPS time in seconds indicating when the metadata query is valid.
        If None, routes to the live backend (current state).
    replay_id : str, optional
        Server-registered replay identifier.

    Returns
    -------
    int
        The number of channels matching query.

    """
    return Client().count(
        pattern,
        data_type,
        min_rate,
        max_rate,
        publisher,
        time,
        replay_id=replay_id,
    )

describe

describe(channels, time=None, replay_id=None)

Get channel metadata for channels requested

Parameters:

Name Type Description Default
channels list[str]

List of channels to request.

required
time float

GPS time in seconds indicating when the metadata query is valid. If None, routes to the live backend (current state).

None
replay_id str

Server-registered replay identifier.

None

Returns:

Type Description
dict[str, Channel]

Mapping of channel names to channel metadata.

Source code in arrakis/api.py
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
def describe(
    channels: list[str],
    time: float | None = None,
    replay_id: str | None = None,
) -> dict[str, Channel]:
    """Get channel metadata for channels requested

    Parameters
    ----------
    channels : list[str]
        List of channels to request.
    time : float, optional
        GPS time in seconds indicating when the metadata query is valid.
        If None, routes to the live backend (current state).
    replay_id : str, optional
        Server-registered replay identifier.

    Returns
    -------
    dict[str, Channel]
        Mapping of channel names to channel metadata.

    """
    return Client().describe(
        channels,
        time,
        replay_id=replay_id,
    )

domains

domains()

Get the list of domains available on the server.

Returns:

Type Description
list[str]

Sorted list of domain names.

Source code in arrakis/api.py
55
56
57
58
59
60
61
62
63
64
def domains() -> list[str]:
    """Get the list of domains available on the server.

    Returns
    -------
    list[str]
        Sorted list of domain names.

    """
    return Client().domains()

fetch

fetch(channels, start, end, replay_start=None, replay_end=None, replay_id=None)

Fetch timeseries data

Parameters:

Name Type Description Default
channels list[str]

A list of channels to request.

required
start float

GPS start time, in seconds.

required
end float

GPS end time, in seconds.

required
replay_start float

GPS start time of the replay window, in seconds.

None
replay_end float

GPS end time of the replay window, in seconds.

None
replay_id str

Server-registered replay identifier. Mutually exclusive with replay_start/replay_end.

None

Returns:

Type Description
SeriesBlock

Series block with all channels requested.

Source code in arrakis/api.py
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
def fetch(
    channels: list[str],
    start: float,
    end: float,
    replay_start: float | None = None,
    replay_end: float | None = None,
    replay_id: str | None = None,
) -> SeriesBlock:
    """Fetch timeseries data

    Parameters
    ----------
    channels : list[str]
        A list of channels to request.
    start : float
        GPS start time, in seconds.
    end : float
        GPS end time, in seconds.
    replay_start : float, optional
        GPS start time of the replay window, in seconds.
    replay_end : float, optional
        GPS end time of the replay window, in seconds.
    replay_id : str, optional
        Server-registered replay identifier. Mutually exclusive with
        replay_start/replay_end.

    Returns
    -------
    SeriesBlock
        Series block with all channels requested.

    """
    return Client().fetch(
        channels,
        start,
        end,
        replay_start=replay_start,
        replay_end=replay_end,
        replay_id=replay_id,
    )

find

find(pattern=constants.DEFAULT_MATCH, data_type=None, min_rate=constants.MIN_SAMPLE_RATE, max_rate=constants.MAX_SAMPLE_RATE, publisher=None, time=None, replay_id=None)

Find channels matching a set of conditions

Parameters:

Name Type Description Default
pattern str

Channel pattern to match channels with, using regular expressions.

DEFAULT_MATCH
data_type dtype - like | list[dtype - like]

If set, find all channels with these data types.

None
min_rate int

Minimum sample rate for channels.

MIN_SAMPLE_RATE
max_rate int

Maximum sample rate for channels.

MAX_SAMPLE_RATE
publisher str | list[str]

If set, find all channels associated with these publishers.

None
time float

GPS time in seconds indicating when the metadata query is valid. If None, routes to the live backend (current state).

None
replay_id str

Server-registered replay identifier.

None

Yields:

Type Description
Channel

Channel objects for all channels matching query.

Source code in arrakis/api.py
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
def find(
    pattern: str = constants.DEFAULT_MATCH,
    data_type: DataTypeLike | None = None,
    min_rate: int | None = constants.MIN_SAMPLE_RATE,
    max_rate: int | None = constants.MAX_SAMPLE_RATE,
    publisher: str | list[str] | None = None,
    time: float | None = None,
    replay_id: str | None = None,
) -> Generator[Channel, None, None]:
    """Find channels matching a set of conditions

    Parameters
    ----------
    pattern : str, optional
        Channel pattern to match channels with, using regular expressions.
    data_type : numpy.dtype-like | list[numpy.dtype-like], optional
        If set, find all channels with these data types.
    min_rate : int, optional
        Minimum sample rate for channels.
    max_rate : int, optional
        Maximum sample rate for channels.
    publisher : str | list[str], optional
        If set, find all channels associated with these publishers.
    time : float, optional
        GPS time in seconds indicating when the metadata query is valid.
        If None, routes to the live backend (current state).
    replay_id : str, optional
        Server-registered replay identifier.

    Yields
    -------
    Channel
        Channel objects for all channels matching query.

    """
    yield from Client().find(
        pattern,
        data_type,
        min_rate,
        max_rate,
        publisher,
        time,
        replay_id=replay_id,
    )

replays

replays()

Get available replay windows with start/end times.

Returns:

Type Description
dict

Mapping of replay IDs to their start/end GPS times in seconds.

Source code in arrakis/api.py
43
44
45
46
47
48
49
50
51
52
def replays() -> dict:
    """Get available replay windows with start/end times.

    Returns
    -------
    dict
        Mapping of replay IDs to their start/end GPS times in seconds.

    """
    return Client().replays()

scope_map

scope_map()

Get the mapping of endpoints to their scopes.

Returns:

Type Description
dict

Mapping of endpoint information including scopes per domain.

Source code in arrakis/api.py
31
32
33
34
35
36
37
38
39
40
def scope_map() -> dict:
    """Get the mapping of endpoints to their scopes.

    Returns
    -------
    dict
        Mapping of endpoint information including scopes per domain.

    """
    return Client().scope_map()

server_info

server_info()

Get server version and capability metadata.

Returns:

Type Description
dict

Server metadata including version info, backend type, capabilities, and domains.

Source code in arrakis/api.py
18
19
20
21
22
23
24
25
26
27
28
def server_info() -> dict:
    """Get server version and capability metadata.

    Returns
    -------
    dict
        Server metadata including version info, backend type,
        capabilities, and domains.

    """
    return Client().server_info()

stream

stream(channels, start=None, end=None, replay_start=None, replay_end=None, replay_id=None)

Stream live or offline timeseries data

Parameters:

Name Type Description Default
channels list[str]

List of channels to request.

required
start float

GPS start time, in seconds.

None
end float

GPS end time, in seconds.

None
replay_start float

GPS start time of the replay window, in seconds.

None
replay_end float

GPS end time of the replay window, in seconds.

None
replay_id str

Server-registered replay identifier. Mutually exclusive with replay_start/replay_end.

None

Yields:

Type Description
SeriesBlock

Dictionary-like object containing all requested channel data.

Setting neither start nor end begins a live stream starting
from now.
Source code in arrakis/api.py
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
def stream(
    channels: list[str],
    start: float | None = None,
    end: float | None = None,
    replay_start: float | None = None,
    replay_end: float | None = None,
    replay_id: str | None = None,
) -> Generator[SeriesBlock, None, None]:
    """Stream live or offline timeseries data

    Parameters
    ----------
    channels : list[str]
        List of channels to request.
    start : float, optional
        GPS start time, in seconds.
    end : float, optional
        GPS end time, in seconds.
    replay_start : float, optional
        GPS start time of the replay window, in seconds.
    replay_end : float, optional
        GPS end time of the replay window, in seconds.
    replay_id : str, optional
        Server-registered replay identifier. Mutually exclusive with
        replay_start/replay_end.

    Yields
    ------
    SeriesBlock
        Dictionary-like object containing all requested channel data.

    Setting neither start nor end begins a live stream starting
    from now.

    """
    yield from Client().stream(
        channels,
        start,
        end,
        replay_start=replay_start,
        replay_end=replay_end,
        replay_id=replay_id,
    )