event-model
Data model used by the bluesky ecosystem.
What it is and what it does
event-model is the formal data schema and validation toolkit for the bluesky scientific data ecosystem. It defines how experimental metadata, measurements, and device state are organized into structured documents (Start, Event, EventDescriptor, Stop, etc.) that flow through data collection and analysis pipelines. The package provides Python tools to compose, validate, and transform these documents according to the bluesky specification.
The model is designed around the principle that rich metadata recorded alongside measured data enables better research and reproducibility. Documents capture sample information, experimental intent, detector calibrations, device configurations, and the actual measured data in a standardized format. This package is the foundation for any tool or workflow that needs to work with bluesky-collected data or emit data in bluesky-compatible format.
Use it for:
- Validate experiment documents produced by bluesky beamline control systems before storage or analysis.
- Compose properly-structured Start, Event, and Stop documents when building custom data acquisition workflows.
- Transform or migrate experiment data between different storage backends while maintaining schema compliance.
- Build analysis pipelines that consume bluesky-formatted streaming data with guaranteed document structure.
- Integrate external data sources into bluesky workflows by wrapping them in compliant document schemas.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Defines and validates the formal data model for bluesky's streaming scientific data ecosystem, providing schemas and Python tools for composing, validating, and transforming experiment documents.
Yes. If you work with bluesky data or need to emit data in bluesky-compatible format, this is a required dependency. Low install friction, active maintenance, permissive license, no known vulnerabilities, and supports current Python versions. Even as a transitive dependency it is stable and lightweight.
Install
event-model on PyPI
pip
pip install event-modeluv
uv add event-modelpoetry
poetry add event-modelInstalling event-model
Before you install
Low friction installation with three lightweight runtime dependencies (jsonschema, numpy, typing_extensions). Active maintenance with a release 72 days ago and recent commits; supports Python 3.10 through 3.13.
License in practice
BSD 3-Clause License permits commercial and private use with attribution and liability disclaimers; no restrictions on derivative works or redistribution.
Quickstart
pip install event-model
import event_model
# Validate a Start document
start_doc = {"uid": "...", "time": 0.0}
event_model.compose_run(metadata={"proposal": "..."})
Requires Python 3.10 or later.
Verify before relying
- Whether the package provides runtime document composition helpers beyond schema validation.
- What transformations between document formats are supported beyond validation.
- Whether numpy is used for data handling or only as a transitive dependency.
Package facts
| License | BSD 3-Clause License Copyright (c) 2015, Brookhaven National Laboratory Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — jsonschema, numpy, typing_extensions |
| Maintenance | actively maintained — 72 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 89,877/month — #13,630 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: event_model-1.24.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
blueskyBluesky is an experiment control and scientific…
permissive · top 15,000 on PyPI
schema-saladSchema Salad is a schema language for…
permissive · top 15,000 on PyPI
xmlschemaValidates XML documents against XSD schemas and…
permissive · top 5,000 on PyPI
asdf-transform-schemasProvides ASDF schemas for validating transform…
unclear · top 15,000 on PyPI
ophyd-asyncophyd-async provides asynchronous hardware…
permissive · top 15,000 on PyPI
ophydOphyd provides a Python abstraction layer for…
permissive · top 15,000 on PyPI
sigstore-modelsProvides Pydantic-based data models that mirror…
unclear · top 15,000 on PyPI
pandas-schemaValidates pandas DataFrames against…
permissive · top 15,000 on PyPI
coffeacoffea provides columnar data analysis tools…
permissive · top 15,000 on PyPI
asdf-coordinates-schemasProvides ASDF schemas for validating coordinate…
unclear · top 15,000 on PyPI