Skip to main content

Python utilities for handling ISIS streamed data

Project description

Streaming Data Types

Crates.io PyPI

FlatBuffers is the format chosen for the ISIS data streaming system, derived from the ESS messaging system.

Schema ids

ID File name Description
f144 f144_logdata.fbs Controls related log data, typically from EPICS or NICOS. Note: not to be used for array data
ev44 ev44_events.fbs Multi-institution neutron event data for both single and multiple pulses
df12 df12_det_spec_map.fbs Detector-spectrum map for Mantid
se00 se00_data.fbs Used for storing arrays with optional timestamps, for example waveform data. Replaces senv.
ad00 ad00_area_detector_array.fbs EPICS area detector array data
hs01 hs01_event_histogram.fbs Event histogram stored in n dim array
ep01 ep01_epics_connection.fbs Status or event of EPICS connection. Replaces ep00
json json_json.fbs Carries a JSON payload
pl72 pl72_run_start.fbs File writing, run start message for file writer and Mantid
6s4t 6s4t_run_stop.fbs File writing, run stop message for file writer and Mantid
answ answ_action_response.fbs Holds the result of a command to the filewriter
wrdn wrdn_finished_writing.fbs Message from the filewriter when it is done writing a file
x5f2 x5f2_status.fbs Status update and heartbeat message for any software
fc00 fc00_forwarder_config.fbs Configuration update for Forwarder
al00 al00_alarm.fbs Generic alarm schema for EPICS, NICOS, etc.
da00 da00_dataarray.fbs Pseudo-scipp DataArray with time-dependent and constant Variables
un00 un00_units.fbs Engineering units update

Adding new schemas

Add .fbs file to `schemas directory

Check ess-streaming-data-types first; attempt not to diverge without reason. If a new schema is really needed, then add a new .fbs schema in the schemas directory.

Note: to generate code from .fbs schemas, you will need the flatc tool installed. It can be acquired from https://github.com/google/flatbuffers/releases .

Adding Python bindings

Python bindings have low-level code (autogenerated by flatc) in the fbschemas directory, but also manually-written convenience serializers and deserializers in the top-level of the python module.

When adding or modifying a schema:

  • The low-level code must be generated by manually calling flatc --python schemas\some_schema.fbs and adding the resulting generated code to python/src/streaming_data_types/fbschemas.
  • Manually-written serializers & deserializers will need to be updated, and added to the lists in __init__.py.

Rust bindings

Rust bindings have low-level code in flatbuffers_generated, and a small high-level wrapper to deserialize any message.

When adding or modifying a schema:

  • The low-level code must be generated by calling generate_rust_bindings.py
  • The wrapper (defined in lib.rs) will need to be updated with the new schema.

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

isis_streaming_data_types-0.1.1.tar.gz (58.8 kB view details)

Uploaded Source

Built Distribution

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

isis_streaming_data_types-0.1.1-py3-none-any.whl (72.5 kB view details)

Uploaded Python 3

File details

Details for the file isis_streaming_data_types-0.1.1.tar.gz.

File metadata

File hashes

Hashes for isis_streaming_data_types-0.1.1.tar.gz
Algorithm Hash digest
SHA256 88bc380f7168accd4b709da2056977969a7002c3eabfda123d6e470b4cfe2f5b
MD5 c5b11c115b6d529d25ba938032c71dd0
BLAKE2b-256 685590400ae1151c3fe13dda169b4870f06562b815f75497d54b73d3b7ef6234

See more details on using hashes here.

Provenance

The following attestation bundles were made for isis_streaming_data_types-0.1.1.tar.gz:

Publisher: release.yml on ISISComputingGroup/streaming-data-types

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file isis_streaming_data_types-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for isis_streaming_data_types-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 93e50bf85789f69df37b8a8d0345da55393defceb43b5965b41b148375479c76
MD5 11f6f460cf79df9904c2731658d326c9
BLAKE2b-256 78a4744bef9f90a3f745d3f5503c669bf027072aa2bcb598ede7ea7ed6cdb8cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for isis_streaming_data_types-0.1.1-py3-none-any.whl:

Publisher: release.yml on ISISComputingGroup/streaming-data-types

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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