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)

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

Returns:

Type Description
int

The number of channels matching query.

Source code in arrakis/api.py
 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 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,
) -> 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).

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

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

describe

describe(channels, time=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

Returns:

Type Description
dict[str, Channel]

Mapping of channel names to channel metadata.

Source code in arrakis/api.py
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
def describe(channels: list[str], time: float | 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).

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

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

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
31
32
33
34
35
36
37
38
39
40
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)

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

Returns:

Type Description
SeriesBlock

Series block with all channels requested.

Source code in arrakis/api.py
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
def fetch(
    channels: list[str],
    start: float,
    end: float,
) -> 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.

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

    """
    return Client().fetch(channels, start, end)

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)

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

Yields:

Type Description
Channel

Channel objects for all channels matching query.

Source code in arrakis/api.py
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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,
) -> 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).

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

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

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)

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

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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
def stream(
    channels: list[str],
    start: float | None = None,
    end: float | 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.

    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)